annotate src/misc_gui.cpp @ 12415:6a77d1df56e2 draft

(svn r16849) -Codechange: replace GetCargo() by CargoSpec::Get()
author smatz <smatz@openttd.org>
date Thu, 16 Jul 2009 19:00:13 +0000
parents a56923c27ba6
children 499dee1c27b6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1 /* $Id$ */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2
9111
d48433370037 (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 <rubidium@openttd.org>
parents: 9082
diff changeset
3 /** @file misc_gui.cpp GUIs for a number of misc windows. */
6201
3b141366478a (svn r8987) -Cleanup: doxygen changes. Again. Mostly (still) @files missing tags and (more than just) a few comments style.
belugas <belugas@openttd.org>
parents: 6197
diff changeset
4
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
5 #include "stdafx.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
6 #include "openttd.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
7 #include "debug.h"
6453
666fc3ef3174 (svn r9609) -Codechange: Move some function prototypes out of functions.h and into landscape.h, and add a few where they didn't exist.
maedhros <maedhros@openttd.org>
parents: 6350
diff changeset
8 #include "landscape.h"
7750
2df30880f88b (svn r11287) -Codechange: add support for pushing paramaters into NewIndustries' error messages. Patch by Csaboka.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
9 #include "newgrf_text.h"
10571
b6779abf2e96 (svn r14828) -Codechange: move most of save/load-specific code to separate files
smatz <smatz@openttd.org>
parents: 10563
diff changeset
10 #include "saveload/saveload.h"
8108
4faab45e2603 (svn r11669) -Codechange: refactor tile.h -> tile_type.h and tile_map.h
rubidium <rubidium@openttd.org>
parents: 8107
diff changeset
11 #include "tile_map.h"
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
12 #include "gui.h"
8107
f65cf2bc3255 (svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium <rubidium@openttd.org>
parents: 8106
diff changeset
13 #include "station_gui.h"
8224
c45446125bf0 (svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium <rubidium@openttd.org>
parents: 8214
diff changeset
14 #include "viewport_func.h"
c45446125bf0 (svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium <rubidium@openttd.org>
parents: 8214
diff changeset
15 #include "gfx_func.h"
8785
2a8950a812dc (svn r12489) -Codechange: split station.h into station_base.h and station_func.h.
rubidium <rubidium@openttd.org>
parents: 8748
diff changeset
16 #include "station_func.h"
8116
9cc845deddfe (svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium <rubidium@openttd.org>
parents: 8114
diff changeset
17 #include "command_func.h"
10208
39cf8eebfda5 (svn r14422) -Codechange: also reflect the changes of r14421 in the filenames.
rubidium <rubidium@openttd.org>
parents: 10207
diff changeset
18 #include "company_func.h"
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
19 #include "town.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
20 #include "network/network.h"
11352
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
21 #include "network/network_content.h"
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
22 #include "variables.h"
10960
a4e5b5d2837c (svn r15299) -Cleanup: remove many redundant includes
smatz <smatz@openttd.org>
parents: 10944
diff changeset
23 #include "company_base.h"
a4e5b5d2837c (svn r15299) -Cleanup: remove many redundant includes
smatz <smatz@openttd.org>
parents: 10944
diff changeset
24 #include "texteff.hpp"
6091
17ebeb5a2c37 (svn r8826) -Codechange: Replace _cargoc's separate arrays with a regular struct array (with accessor) and implement new initialization method using cargo labels.
peter1138 <peter1138@openttd.org>
parents: 5893
diff changeset
25 #include "cargotype.h"
10208
39cf8eebfda5 (svn r14422) -Codechange: also reflect the changes of r14421 in the filenames.
rubidium <rubidium@openttd.org>
parents: 10207
diff changeset
26 #include "company_manager_face.h"
8114
2d6af5d7a142 (svn r11675) -Codechange: split the string types from the string functions.
rubidium <rubidium@openttd.org>
parents: 8108
diff changeset
27 #include "strings_func.h"
10039
6301378f3e0f (svn r14199) -Codechange: split fileio.h into fileio_type.h and fileio_func.h so not everything that includes saveload.h needs to include everything else too.
rubidium <rubidium@openttd.org>
parents: 9944
diff changeset
28 #include "fileio_func.h"
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
29 #include "fios.h"
8123
c26c28875749 (svn r11684) -Codechange: split gfx.h in a type and functional header.
rubidium <rubidium@openttd.org>
parents: 8121
diff changeset
30 #include "zoom_func.h"
8131
e300ac8001ae (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 <rubidium@openttd.org>
parents: 8123
diff changeset
31 #include "window_func.h"
8214
6385dffc0b37 (svn r11777) -Codechange: split the string header and make do not include it when it's not necessary.
rubidium <rubidium@openttd.org>
parents: 8208
diff changeset
32 #include "string_func.h"
8787
ff327b646d49 (svn r12495) -Codechange: reduce the dependency on newgrf_station.h (especially because newgrf_station.h includes a lot of stuff).
rubidium <rubidium@openttd.org>
parents: 8785
diff changeset
33 #include "newgrf_cargo.h"
9127
428852b86d4d (svn r12987) -Codechange: split viewport and tile selection.
rubidium <rubidium@openttd.org>
parents: 9116
diff changeset
34 #include "tilehighlight_func.h"
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
35 #include "querystring_gui.h"
8119
b6ec923e9fa8 (svn r11680) -Codechange: refactor more out of openttd.h and functions.h.
rubidium <rubidium@openttd.org>
parents: 8116
diff changeset
36
8264
2495310e220f (svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium <rubidium@openttd.org>
parents: 8254
diff changeset
37 #include "table/strings.h"
2495310e220f (svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium <rubidium@openttd.org>
parents: 8254
diff changeset
38
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
39 /* Variables to display file lists */
8149
ad7ddb6150dc (svn r11711) -Codechange: Name the Save Load Dialog Mode enum
belugas <belugas@openttd.org>
parents: 8144
diff changeset
40 SaveLoadDialogMode _saveload_mode;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
41
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
42
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
43 static bool _fios_path_changed;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
44 static bool _savegame_sort_dirty;
11230
4864c1e8957a (svn r15584) -Codechange: Move several variables from variables.h to more appropriate headers.
yexo <yexo@openttd.org>
parents: 11225
diff changeset
45 int _caret_timer;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
46
11429
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
47 /** Widgets for the land info window. */
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
48 enum LandInfoWidgets {
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
49 LIW_CLOSE, ///< Close the window
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
50 LIW_CAPTION, ///< Title bar of the window
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
51 LIW_BACKGROUND, ///< Background to draw on
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
52 };
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
53
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
54 static const Widget _land_info_widgets[] = {
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
55 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_BLACK_CROSS, STR_TOOLTIP_CLOSE_WINDOW}, // LIW_CLOSE
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
56 { WWT_CAPTION, RESIZE_NONE, COLOUR_GREY, 11, 299, 0, 13, STR_LAND_AREA_INFORMATION_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS}, // LIW_CAPTION
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
57 { WWT_PANEL, RESIZE_BOTTOM, COLOUR_GREY, 0, 299, 14, 99, 0x0, STR_NULL}, // LIW_BACKGROUND
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
58 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
59 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
60
11653
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
61 static const NWidgetPart _nested_land_info_widgets[] = {
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
62 NWidget(NWID_HORIZONTAL),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
63 NWidget(WWT_CLOSEBOX, COLOUR_GREY, LIW_CLOSE),
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
64 NWidget(WWT_CAPTION, COLOUR_GREY, LIW_CAPTION), SetDataTip(STR_LAND_AREA_INFORMATION_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
11653
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
65 EndContainer(),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
66 NWidget(WWT_PANEL, COLOUR_GREY, LIW_BACKGROUND), SetMinimalSize(300, 86), SetResize(0, 1), EndContainer(),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
67 };
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
68
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11369
diff changeset
69 static const WindowDesc _land_info_desc(
9790
f5b8e5291165 (svn r13932) -Add [YAPP]: PBS signals added to the map array. The signals are drawn using the old Patch-like PBS sprites. (michi_cc)
rubidium <rubidium@openttd.org>
parents: 9781
diff changeset
70 WDP_AUTO, WDP_AUTO, 300, 100, 300, 100,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5750
diff changeset
71 WC_LAND_INFO, WC_NONE,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
72 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
11653
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
73 _land_info_widgets, _nested_land_info_widgets, lengthof(_nested_land_info_widgets)
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11369
diff changeset
74 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
75
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
76 class LandInfoWindow : public Window {
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
77 enum {
9714
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
78 LAND_INFO_CENTERED_LINES = 12, ///< Up to 12 centered lines
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
79 LAND_INFO_MULTICENTER_LINE = LAND_INFO_CENTERED_LINES, ///< One multicenter line
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
80 LAND_INFO_LINE_END,
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
81
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
82 LAND_INFO_LINE_BUFF_SIZE = 512,
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
83 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
84
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
85 public:
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
86 char landinfo_data[LAND_INFO_LINE_END][LAND_INFO_LINE_BUFF_SIZE];
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
87
9170
8c020e980b8c (svn r13033) -Fix [FS#2003](r13029): land info tool wasn't working
smatz <smatz@openttd.org>
parents: 9166
diff changeset
88 virtual void OnPaint()
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
89 {
9273
72a6d2e60834 (svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents: 9272
diff changeset
90 this->DrawWidgets();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
91
9572
7c23a341f695 (svn r13601) -Codechange: resize the Tile Info window when it is needed, make it better readable
smatz <smatz@openttd.org>
parents: 9441
diff changeset
92 uint y = 21;
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
93 for (uint i = 0; i < LAND_INFO_CENTERED_LINES; i++) {
9572
7c23a341f695 (svn r13601) -Codechange: resize the Tile Info window when it is needed, make it better readable
smatz <smatz@openttd.org>
parents: 9441
diff changeset
94 if (StrEmpty(this->landinfo_data[i])) break;
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
95
11429
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
96 DrawString(this->widget[LIW_BACKGROUND].left + 2, this->widget[LIW_BACKGROUND].right - 2, y, this->landinfo_data[i], i == 0 ? TC_LIGHT_BLUE : TC_FROMSTRING, SA_CENTER);
9572
7c23a341f695 (svn r13601) -Codechange: resize the Tile Info window when it is needed, make it better readable
smatz <smatz@openttd.org>
parents: 9441
diff changeset
97 y += i == 0 ? 16 : 12;
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
98 }
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
99
9648
b53049484e44 (svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents: 9572
diff changeset
100 if (!StrEmpty(this->landinfo_data[LAND_INFO_MULTICENTER_LINE])) {
b53049484e44 (svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents: 9572
diff changeset
101 SetDParamStr(0, this->landinfo_data[LAND_INFO_MULTICENTER_LINE]);
11766
7f4acc4c2e51 (svn r16156) -Codechange: make the parameters of DrawStringMultiline the same as for DrawString (except the addition of the bottom parameter)
rubidium <rubidium@openttd.org>
parents: 11730
diff changeset
102 DrawStringMultiLine(this->widget[LIW_BACKGROUND].left + 2, this->widget[LIW_BACKGROUND].right - 2, y, y + 22, STR_JUST_RAW_STRING, TC_FROMSTRING, SA_CENTER);
9648
b53049484e44 (svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents: 9572
diff changeset
103 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
104 }
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
105
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
106 LandInfoWindow(TileIndex tile) : Window(&_land_info_desc) {
9413
512ea64da840 (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 <rubidium@openttd.org>
parents: 9407
diff changeset
107 Town *t = ClosestTownFromTile(tile, _settings_game.economy.dist_local_authority);
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
108
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
109 /* Because build_date is not set yet in every TileDesc, we make sure it is empty */
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
110 TileDesc td;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
111
9713
c94f47f48e76 (svn r13826) -Codechange: use 'INVALID_DATE' instead of '0' as placeholder in tile description
smatz <smatz@openttd.org>
parents: 9693
diff changeset
112 td.build_date = INVALID_DATE;
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
113
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
114 /* Most tiles have only one owner, but
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
115 * - drivethrough roadstops can be build on town owned roads (up to 2 owners) and
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
116 * - roads can have up to four owners (railroad, road, tram, 3rd-roadtype "highway").
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
117 */
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
118 td.owner_type[0] = STR_LAND_AREA_INFORMATION_OWNER; // At least one owner is displayed, though it might be "N/A".
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
119 td.owner_type[1] = STR_NULL; // STR_NULL results in skipping the owner
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
120 td.owner_type[2] = STR_NULL;
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
121 td.owner_type[3] = STR_NULL;
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
122 td.owner[0] = OWNER_NONE;
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
123 td.owner[1] = OWNER_NONE;
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
124 td.owner[2] = OWNER_NONE;
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
125 td.owner[3] = OWNER_NONE;
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
126
9714
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
127 td.station_class = STR_NULL;
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
128 td.station_name = STR_NULL;
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
129
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
130 td.grf = NULL;
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
131
12261
c42d8d239142 (svn r16676) -Codechange: Rename AcceptedCargo to CargoArray and its instances to more meaningful names.
frosch <frosch@openttd.org>
parents: 12244
diff changeset
132 CargoArray acceptance;
c42d8d239142 (svn r16676) -Codechange: Rename AcceptedCargo to CargoArray and its instances to more meaningful names.
frosch <frosch@openttd.org>
parents: 12244
diff changeset
133 AddAcceptedCargo(tile, acceptance);
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
134 GetTileDesc(tile, &td);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
135
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
136 uint line_nr = 0;
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
137
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
138 /* Tiletype */
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
139 SetDParam(0, td.dparam[0]);
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
140 GetString(this->landinfo_data[line_nr], td.str, lastof(this->landinfo_data[line_nr]));
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
141 line_nr++;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
142
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
143 /* Up to four owners */
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
144 for (uint i = 0; i < 4; i++) {
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
145 if (td.owner_type[i] == STR_NULL) continue;
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
146
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
147 SetDParam(0, STR_LAND_AREA_INFORMATION_OWNER_N_A);
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
148 if (td.owner[i] != OWNER_NONE && td.owner[i] != OWNER_WATER) GetNameOfOwner(td.owner[i], tile);
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
149 GetString(this->landinfo_data[line_nr], td.owner_type[i], lastof(this->landinfo_data[line_nr]));
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
150 line_nr++;
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
151 }
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
152
10497
b15aa92d60c9 (svn r14752) -Fix [FS#2438]: revenue when clearing land would show up in red in the land info window as negative cost.
rubidium <rubidium@openttd.org>
parents: 10426
diff changeset
153 /* Cost to clear/revenue when cleared */
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
154 StringID str = STR_LAND_AREA_INFORMATION_COST_TO_CLEAR_N_A;
11955
734fb1a3d241 (svn r16359) -Codechange: don't abuse company 0 when determining 'cost to clear land' in the LandInfoWindow
smatz <smatz@openttd.org>
parents: 11924
diff changeset
155 Company *c = Company::GetIfValid(_local_company);
734fb1a3d241 (svn r16359) -Codechange: don't abuse company 0 when determining 'cost to clear land' in the LandInfoWindow
smatz <smatz@openttd.org>
parents: 11924
diff changeset
156 if (c != NULL) {
734fb1a3d241 (svn r16359) -Codechange: don't abuse company 0 when determining 'cost to clear land' in the LandInfoWindow
smatz <smatz@openttd.org>
parents: 11924
diff changeset
157 Money old_money = c->money;
734fb1a3d241 (svn r16359) -Codechange: don't abuse company 0 when determining 'cost to clear land' in the LandInfoWindow
smatz <smatz@openttd.org>
parents: 11924
diff changeset
158 c->money = INT64_MAX;
734fb1a3d241 (svn r16359) -Codechange: don't abuse company 0 when determining 'cost to clear land' in the LandInfoWindow
smatz <smatz@openttd.org>
parents: 11924
diff changeset
159 CommandCost costclear = DoCommand(tile, 0, 0, DC_NONE, CMD_LANDSCAPE_CLEAR);
734fb1a3d241 (svn r16359) -Codechange: don't abuse company 0 when determining 'cost to clear land' in the LandInfoWindow
smatz <smatz@openttd.org>
parents: 11924
diff changeset
160 c->money = old_money;
734fb1a3d241 (svn r16359) -Codechange: don't abuse company 0 when determining 'cost to clear land' in the LandInfoWindow
smatz <smatz@openttd.org>
parents: 11924
diff changeset
161 if (CmdSucceeded(costclear)) {
734fb1a3d241 (svn r16359) -Codechange: don't abuse company 0 when determining 'cost to clear land' in the LandInfoWindow
smatz <smatz@openttd.org>
parents: 11924
diff changeset
162 Money cost = costclear.GetCost();
734fb1a3d241 (svn r16359) -Codechange: don't abuse company 0 when determining 'cost to clear land' in the LandInfoWindow
smatz <smatz@openttd.org>
parents: 11924
diff changeset
163 if (cost < 0) {
734fb1a3d241 (svn r16359) -Codechange: don't abuse company 0 when determining 'cost to clear land' in the LandInfoWindow
smatz <smatz@openttd.org>
parents: 11924
diff changeset
164 cost = -cost; // Negate negative cost to a positive revenue
734fb1a3d241 (svn r16359) -Codechange: don't abuse company 0 when determining 'cost to clear land' in the LandInfoWindow
smatz <smatz@openttd.org>
parents: 11924
diff changeset
165 str = STR_REVENUE_WHEN_CLEARED;
734fb1a3d241 (svn r16359) -Codechange: don't abuse company 0 when determining 'cost to clear land' in the LandInfoWindow
smatz <smatz@openttd.org>
parents: 11924
diff changeset
166 } else {
734fb1a3d241 (svn r16359) -Codechange: don't abuse company 0 when determining 'cost to clear land' in the LandInfoWindow
smatz <smatz@openttd.org>
parents: 11924
diff changeset
167 str = STR_LAND_AREA_INFORMATION_COST_TO_CLEAR;
734fb1a3d241 (svn r16359) -Codechange: don't abuse company 0 when determining 'cost to clear land' in the LandInfoWindow
smatz <smatz@openttd.org>
parents: 11924
diff changeset
168 }
734fb1a3d241 (svn r16359) -Codechange: don't abuse company 0 when determining 'cost to clear land' in the LandInfoWindow
smatz <smatz@openttd.org>
parents: 11924
diff changeset
169 SetDParam(0, cost);
10497
b15aa92d60c9 (svn r14752) -Fix [FS#2438]: revenue when clearing land would show up in red in the land info window as negative cost.
rubidium <rubidium@openttd.org>
parents: 10426
diff changeset
170 }
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
171 }
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
172 GetString(this->landinfo_data[line_nr], str, lastof(this->landinfo_data[line_nr]));
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
173 line_nr++;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
174
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
175 /* Location */
9648
b53049484e44 (svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents: 9572
diff changeset
176 char tmp[16];
b53049484e44 (svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents: 9572
diff changeset
177 snprintf(tmp, lengthof(tmp), "0x%.4X", tile);
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
178 SetDParam(0, TileX(tile));
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
179 SetDParam(1, TileY(tile));
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
180 SetDParam(2, TileHeight(tile));
9648
b53049484e44 (svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents: 9572
diff changeset
181 SetDParamStr(3, tmp);
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
182 GetString(this->landinfo_data[line_nr], STR_LANDINFO_COORDS, lastof(this->landinfo_data[line_nr]));
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
183 line_nr++;
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
184
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
185 /* Local authority */
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
186 SetDParam(0, STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE);
11972
fd10870d74d4 (svn r16378) -Codechange: replace OldPool with simpler Pool. Compilation time, binary size and run time (with asserts disabled) should be improved
smatz <smatz@openttd.org>
parents: 11955
diff changeset
187 if (t != NULL) {
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
188 SetDParam(0, STR_TOWN);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
189 SetDParam(1, t->index);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
190 }
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
191 GetString(this->landinfo_data[line_nr], STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY, lastof(this->landinfo_data[line_nr]));
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
192 line_nr++;
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
193
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
194 /* Build date */
9713
c94f47f48e76 (svn r13826) -Codechange: use 'INVALID_DATE' instead of '0' as placeholder in tile description
smatz <smatz@openttd.org>
parents: 9693
diff changeset
195 if (td.build_date != INVALID_DATE) {
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
196 SetDParam(0, td.build_date);
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
197 GetString(this->landinfo_data[line_nr], STR_BUILD_DATE, lastof(this->landinfo_data[line_nr]));
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
198 line_nr++;
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
199 }
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
200
9714
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
201 /* Station class */
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
202 if (td.station_class != STR_NULL) {
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
203 SetDParam(0, td.station_class);
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
204 GetString(this->landinfo_data[line_nr], STR_TILEDESC_STATION_CLASS, lastof(this->landinfo_data[line_nr]));
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
205 line_nr++;
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
206 }
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
207
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
208 /* Station type name */
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
209 if (td.station_name != STR_NULL) {
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
210 SetDParam(0, td.station_name);
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
211 GetString(this->landinfo_data[line_nr], STR_TILEDESC_STATION_TYPE, lastof(this->landinfo_data[line_nr]));
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
212 line_nr++;
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
213 }
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
214
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
215 /* NewGRF name */
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
216 if (td.grf != NULL) {
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
217 SetDParamStr(0, td.grf);
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
218 GetString(this->landinfo_data[line_nr], STR_TILEDESC_NEWGRF_NAME, lastof(this->landinfo_data[line_nr]));
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
219 line_nr++;
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
220 }
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
221
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
222 assert(line_nr < LAND_INFO_CENTERED_LINES);
cb9766ae1255 (svn r13830) -Feature: show additional NewGRF info in the Tile Info window for stations, houses and industries
smatz <smatz@openttd.org>
parents: 9713
diff changeset
223
9572
7c23a341f695 (svn r13601) -Codechange: resize the Tile Info window when it is needed, make it better readable
smatz <smatz@openttd.org>
parents: 9441
diff changeset
224 /* Mark last line empty */
7c23a341f695 (svn r13601) -Codechange: resize the Tile Info window when it is needed, make it better readable
smatz <smatz@openttd.org>
parents: 9441
diff changeset
225 this->landinfo_data[line_nr][0] = '\0';
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
226
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
227 /* Cargo acceptance is displayed in a extra multiline */
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
228 char *strp = GetString(this->landinfo_data[LAND_INFO_MULTICENTER_LINE], STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED, lastof(this->landinfo_data[LAND_INFO_MULTICENTER_LINE]));
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
229 bool found = false;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
230
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
231 for (CargoID i = 0; i < NUM_CARGO; ++i) {
12261
c42d8d239142 (svn r16676) -Codechange: Rename AcceptedCargo to CargoArray and its instances to more meaningful names.
frosch <frosch@openttd.org>
parents: 12244
diff changeset
232 if (acceptance[i] > 0) {
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
233 /* Add a comma between each item. */
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
234 if (found) {
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
235 *strp++ = ',';
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
236 *strp++ = ' ';
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
237 }
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
238 found = true;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
239
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
240 /* If the accepted value is less than 8, show it in 1/8:ths */
12261
c42d8d239142 (svn r16676) -Codechange: Rename AcceptedCargo to CargoArray and its instances to more meaningful names.
frosch <frosch@openttd.org>
parents: 12244
diff changeset
241 if (acceptance[i] < 8) {
c42d8d239142 (svn r16676) -Codechange: Rename AcceptedCargo to CargoArray and its instances to more meaningful names.
frosch <frosch@openttd.org>
parents: 12244
diff changeset
242 SetDParam(0, acceptance[i]);
12415
6a77d1df56e2 (svn r16849) -Codechange: replace GetCargo() by CargoSpec::Get()
smatz <smatz@openttd.org>
parents: 12365
diff changeset
243 SetDParam(1, CargoSpec::Get(i)->name);
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
244 strp = GetString(strp, STR_LAND_AREA_INFORMATION_CARGO_EIGHTS, lastof(this->landinfo_data[LAND_INFO_MULTICENTER_LINE]));
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
245 } else {
12415
6a77d1df56e2 (svn r16849) -Codechange: replace GetCargo() by CargoSpec::Get()
smatz <smatz@openttd.org>
parents: 12365
diff changeset
246 strp = GetString(strp, CargoSpec::Get(i)->name, lastof(this->landinfo_data[LAND_INFO_MULTICENTER_LINE]));
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
247 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
248 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
249 }
9322
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
250 if (!found) this->landinfo_data[LAND_INFO_MULTICENTER_LINE][0] = '\0';
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
251
9572
7c23a341f695 (svn r13601) -Codechange: resize the Tile Info window when it is needed, make it better readable
smatz <smatz@openttd.org>
parents: 9441
diff changeset
252 if (found) line_nr += 2;
7c23a341f695 (svn r13601) -Codechange: resize the Tile Info window when it is needed, make it better readable
smatz <smatz@openttd.org>
parents: 9441
diff changeset
253
7c23a341f695 (svn r13601) -Codechange: resize the Tile Info window when it is needed, make it better readable
smatz <smatz@openttd.org>
parents: 9441
diff changeset
254 if (line_nr > 6) ResizeWindow(this, 0, 12 * (line_nr - 6));
7c23a341f695 (svn r13601) -Codechange: resize the Tile Info window when it is needed, make it better readable
smatz <smatz@openttd.org>
parents: 9441
diff changeset
255
7c23a341f695 (svn r13601) -Codechange: resize the Tile Info window when it is needed, make it better readable
smatz <smatz@openttd.org>
parents: 9441
diff changeset
256 this->FindWindowPlacementAndResize(&_land_info_desc);
7c23a341f695 (svn r13601) -Codechange: resize the Tile Info window when it is needed, make it better readable
smatz <smatz@openttd.org>
parents: 9441
diff changeset
257
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
258 #if defined(_DEBUG)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
259 # define LANDINFOD_LEVEL 0
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
260 #else
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
261 # define LANDINFOD_LEVEL 1
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
262 #endif
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
263 DEBUG(misc, LANDINFOD_LEVEL, "TILE: %#x (%i,%i)", tile, TileX(tile), TileY(tile));
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
264 DEBUG(misc, LANDINFOD_LEVEL, "type_height = %#x", _m[tile].type_height);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
265 DEBUG(misc, LANDINFOD_LEVEL, "m1 = %#x", _m[tile].m1);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
266 DEBUG(misc, LANDINFOD_LEVEL, "m2 = %#x", _m[tile].m2);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
267 DEBUG(misc, LANDINFOD_LEVEL, "m3 = %#x", _m[tile].m3);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
268 DEBUG(misc, LANDINFOD_LEVEL, "m4 = %#x", _m[tile].m4);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
269 DEBUG(misc, LANDINFOD_LEVEL, "m5 = %#x", _m[tile].m5);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
270 DEBUG(misc, LANDINFOD_LEVEL, "m6 = %#x", _m[tile].m6);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
271 DEBUG(misc, LANDINFOD_LEVEL, "m7 = %#x", _me[tile].m7);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
272 #undef LANDINFOD_LEVEL
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
273 }
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
274 };
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
275
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
276 static void Place_LandInfo(TileIndex tile)
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
277 {
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
278 DeleteWindowById(WC_LAND_INFO, 0);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
279 new LandInfoWindow(tile);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
280 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
281
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
282 void PlaceLandBlockInfo()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
283 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
284 if (_cursor.sprite == SPR_CURSOR_QUERY) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
285 ResetObjectToPlace();
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
286 } else {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
287 _place_proc = Place_LandInfo;
11702
cdaad565efe5 (svn r16088) -Codechange: merge HighLightStyle and ViewportHighlightMode as they are basically the same thing
rubidium <rubidium@openttd.org>
parents: 11653
diff changeset
288 SetObjectToPlace(SPR_CURSOR_QUERY, PAL_NONE, HT_RECT, WC_MAIN_TOOLBAR, 0);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
289 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
290 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
291
11429
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
292 /** Widgets for the land info window. */
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
293 enum AboutWidgets {
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
294 AW_CLOSE, ///< Close the window
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
295 AW_CAPTION, ///< Title bar of the window
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
296 AW_BACKGROUND, ///< Background to draw on
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
297 AW_FRAME, ///< The scrolling frame with goodies
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
298 };
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
299
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
300 static const Widget _about_widgets[] = {
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
301 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_BLACK_CROSS, STR_TOOLTIP_CLOSE_WINDOW}, // AW_CLOSE
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
302 { WWT_CAPTION, RESIZE_NONE, COLOUR_GREY, 11, 419, 0, 13, STR_ABOUT_OPENTTD, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS}, // AW_CAPTION
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
303 { WWT_PANEL, RESIZE_NONE, COLOUR_GREY, 0, 419, 14, 271, 0x0, STR_NULL}, // AW_BACKGROUND
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
304 { WWT_FRAME, RESIZE_NONE, COLOUR_GREY, 5, 414, 40, 245, STR_NULL, STR_NULL}, // AW_FRAME
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
305 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
306 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
307
11653
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
308 static const NWidgetPart _nested_about_widgets[] = {
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
309 NWidget(NWID_HORIZONTAL),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
310 NWidget(WWT_CLOSEBOX, COLOUR_GREY, AW_CLOSE),
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
311 NWidget(WWT_CAPTION, COLOUR_GREY, AW_CAPTION), SetDataTip(STR_ABOUT_OPENTTD, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
11653
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
312 EndContainer(),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
313 NWidget(WWT_PANEL, COLOUR_GREY, AW_BACKGROUND),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
314 NWidget(WWT_FRAME, COLOUR_GREY, AW_FRAME), SetMinimalSize(410, 206), SetPadding(26, 5, 26, 5), EndContainer(),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
315 EndContainer(),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
316 };
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
317
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11369
diff changeset
318 static const WindowDesc _about_desc(
7341
549c757023fc (svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium <rubidium@openttd.org>
parents: 7321
diff changeset
319 WDP_CENTER, WDP_CENTER, 420, 272, 420, 272,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5750
diff changeset
320 WC_GAME_OPTIONS, WC_NONE,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
321 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
11653
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
322 _about_widgets, _nested_about_widgets, lengthof(_nested_about_widgets)
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11369
diff changeset
323 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
324
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
325 struct AboutWindow : public Window {
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
326 int scroll_height;
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
327 uint16 counter;
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
328
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
329 AboutWindow() : Window(&_about_desc)
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
330 {
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
331 this->counter = 5;
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
332 this->scroll_height = this->height - 40;
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
333 this->FindWindowPlacementAndResize(&_about_desc);
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
334 }
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
335
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
336 virtual void OnPaint()
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
337 {
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
338 static const char *credits[] = {
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
339 /*************************************************************************
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
340 * maximum length of string which fits in window -^*/
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
341 "Original design by Chris Sawyer",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
342 "Original graphics by Simon Foster",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
343 "",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
344 "The OpenTTD team (in alphabetical order):",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
345 " Jean-Francois Claeys (Belugas) - GUI, newindustries and more",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
346 " Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
347 " Matthijs Kooijman (blathijs) - Pathfinder-guru, pool rework",
9944
08df045bf757 (svn r14099) -Codechange: Welcome back, Celestar.
belugas <belugas@openttd.org>
parents: 9916
diff changeset
348 " Victor Fischer (Celestar) - Programming everywhere you need him to",
08df045bf757 (svn r14099) -Codechange: Welcome back, Celestar.
belugas <belugas@openttd.org>
parents: 9916
diff changeset
349 " Christoph Elsenhans (frosch) - General coding",
11407
d306f32f8e30 (svn r15762) -Codechange: inlined utf8 chars are not handled properly on eastern version of windows so escape them
glx <glx@openttd.org>
parents: 11399
diff changeset
350 " Lo\xC3\xAF""c Guilloux (glx) - Windows Expert",
11369
41fcb66a1256 (svn r15719) -Update: the credit section.
yexo <yexo@openttd.org>
parents: 11352
diff changeset
351 " Michael Lutz (michi_cc) - Path based signals",
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
352 " Owen Rudge (orudge) - Forum host, OS/2 port",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
353 " Peter Nelson (peter1138) - Spiritual descendant from newGRF gods",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
354 " Remko Bijker (Rubidium) - Lead coder and way more",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
355 " Zdenek Sojka (SmatZ) - Bug finder and fixer",
11369
41fcb66a1256 (svn r15719) -Update: the credit section.
yexo <yexo@openttd.org>
parents: 11352
diff changeset
356 " Thijs Marinussen (Yexo) - AI Framework",
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
357 "",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
358 "Inactive Developers:",
11407
d306f32f8e30 (svn r15762) -Codechange: inlined utf8 chars are not handled properly on eastern version of windows so escape them
glx <glx@openttd.org>
parents: 11399
diff changeset
359 " Tam\xC3\xA1s Farag\xC3\xB3 (Darkvater) - Ex-Lead coder",
11369
41fcb66a1256 (svn r15719) -Update: the credit section.
yexo <yexo@openttd.org>
parents: 11352
diff changeset
360 " Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;)",
41fcb66a1256 (svn r15719) -Update: the credit section.
yexo <yexo@openttd.org>
parents: 11352
diff changeset
361 " Jonathan Coome (Maedhros) - High priest of the NewGRF Temple",
11407
d306f32f8e30 (svn r15762) -Codechange: inlined utf8 chars are not handled properly on eastern version of windows so escape them
glx <glx@openttd.org>
parents: 11399
diff changeset
362 " Attila B\xC3\xA1n (MiHaMiX) - WebTranslator, Nightlies, Wiki and bugtracker host",
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
363 " Christoph Mallon (Tron) - Programmer, code correctness police",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
364 "",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
365 "Retired Developers:",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
366 " Ludvig Strigeus (ludde) - OpenTTD author, main coder (0.1 - 0.3.3)",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
367 " Serge Paquet (vurlix) - Assistant project manager, coder (0.1 - 0.3.3)",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
368 " Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3.0 - 0.3.6)",
11369
41fcb66a1256 (svn r15719) -Update: the credit section.
yexo <yexo@openttd.org>
parents: 11352
diff changeset
369 " Benedikt Brüggemeier (skidd13) - Bug fixer and code reworker",
41fcb66a1256 (svn r15719) -Update: the credit section.
yexo <yexo@openttd.org>
parents: 11352
diff changeset
370 " Patric Stout (TrueLight) - Programmer, webhoster (0.3 - pre0.7)",
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
371 "",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
372 "Special thanks go out to:",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
373 " Josef Drexler - For his great work on TTDPatch",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
374 " Marcin Grzegorczyk - For his documentation of TTD internals",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
375 " Petr Baudis (pasky) - Many patches, newGRF support",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
376 " Stefan Meißner (sign_de) - For his work on the console",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
377 " Simon Sasburg (HackyKid) - Many bugfixes he has blessed us with",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
378 " Cian Duffy (MYOB) - BeOS port / manual writing",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
379 " Christian Rosentreter (tokai) - MorphOS / AmigaOS port",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
380 " Richard Kempton (richK) - additional airports, initial TGP implementation",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
381 "",
11225
b99d60de9a5d (svn r15578) -Change: unexternalise squirrel.
rubidium <rubidium@openttd.org>
parents: 11090
diff changeset
382 " Alberto Demichelis - Squirrel scripting language © 2003-2008",
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
383 " Michael Blunck - Pre-Signals and Semaphores © 2003",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
384 " George - Canal/Lock graphics © 2003-2004",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
385 " David Dallaston - Tram tracks",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
386 " Marcin Grzegorczyk - Foundations for Tracks on Slopes",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
387 " All Translators - Who made OpenTTD a truly international game",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
388 " Bug Reporters - Without whom OpenTTD would still be full of bugs!",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
389 "",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
390 "",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
391 "And last but not least:",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
392 " Chris Sawyer - For an amazing game!"
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
393 };
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
394
9273
72a6d2e60834 (svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents: 9272
diff changeset
395 this->DrawWidgets();
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
396
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
397 /* Show original copyright and revision version */
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
398 DrawString(this->widget[AW_BACKGROUND].left + 2, this->widget[AW_BACKGROUND].right - 2, 17, STR_ABOUT_ORIGINAL_COPYRIGHT, TC_FROMSTRING, SA_CENTER);
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
399 DrawString(this->widget[AW_BACKGROUND].left + 2, this->widget[AW_BACKGROUND].right - 2, 17 + 10, STR_ABOUT_VERSION, TC_FROMSTRING, SA_CENTER);
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
400
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
401 int y = this->scroll_height;
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
402
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
403 /* Show all scrolling credits */
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
404 for (uint i = 0; i < lengthof(credits); i++) {
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
405 if (y >= 50 && y < (this->height - 40)) {
11429
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
406 DrawString(this->widget[AW_FRAME].left + 5, this->widget[AW_FRAME].right - 5, y, credits[i], TC_BLACK);
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
407 }
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
408 y += 10;
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
409 }
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
410
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
411 /* If the last text has scrolled start a new from the start */
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
412 if (y < 50) this->scroll_height = this->height - 40;
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
413
11429
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
414 DrawString(this->widget[AW_BACKGROUND].left + 2, this->widget[AW_BACKGROUND].right - 2, this->height - 25, "Website: http://www.openttd.org", TC_BLACK, SA_CENTER);
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
415 DrawString(this->widget[AW_BACKGROUND].left + 2, this->widget[AW_BACKGROUND].right - 2, this->height - 15, STR_ABOUT_COPYRIGHT_OPENTTD, TC_FROMSTRING, SA_CENTER);
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
416 }
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
417
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
418 virtual void OnTick()
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
419 {
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
420 if (--this->counter == 0) {
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
421 this->counter = 5;
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
422 this->scroll_height--;
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
423 this->SetDirty();
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
424 }
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
425 }
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
426 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
427
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
428 void ShowAboutWindow()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
429 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
430 DeleteWindowById(WC_GAME_OPTIONS, 0);
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
431 new AboutWindow();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
432 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
433
11793
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
434 /** Widgets of the error message windows */
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
435 enum ErrorMessageWidgets {
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
436 EMW_CLOSE = 0,
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
437 EMW_CAPTION,
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
438 EMW_PANEL,
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
439 EMW_FACE,
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
440 EMW_MESSAGE,
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
441 };
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
442
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
443 static const Widget _errmsg_widgets[] = {
11793
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
444 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_RED, 0, 10, 0, 13, STR_BLACK_CROSS, STR_TOOLTIP_CLOSE_WINDOW},
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
445 { WWT_CAPTION, RESIZE_NONE, COLOUR_RED, 11, 239, 0, 13, STR_ERROR_MESSAGE_CAPTION, STR_NULL},
11793
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
446 { WWT_PANEL, RESIZE_BOTTOM, COLOUR_RED, 0, 239, 14, 45, 0x0, STR_NULL},
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
447 { WWT_EMPTY, RESIZE_NONE, COLOUR_RED, 0, 0, 0, 0, 0x0, STR_NULL},
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
448 { WWT_EMPTY, RESIZE_NONE, COLOUR_RED, 2, 237, 14, 45, 0x0, STR_NULL},
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
449 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
450 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
451
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
452 static const NWidgetPart _nested_errmsg_widgets[] = {
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
453 NWidget(NWID_LAYERED),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
454 NWidget(NWID_VERTICAL),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
455 NWidget(NWID_HORIZONTAL),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
456 NWidget(WWT_CLOSEBOX, COLOUR_RED, EMW_CLOSE),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
457 NWidget(WWT_CAPTION, COLOUR_RED, EMW_CAPTION), SetDataTip(STR_ERROR_MESSAGE_CAPTION, STR_NULL),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
458 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
459 NWidget(WWT_PANEL, COLOUR_RED, EMW_PANEL),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
460 NWidget(WWT_EMPTY, COLOUR_RED, EMW_MESSAGE), SetPadding(0, 2, 0, 2), SetMinimalSize(236, 32),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
461 NWidget(NWID_SPACER), SetResize(0, 1),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
462 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
463 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
464 NWidget(NWID_VERTICAL),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
465 NWidget(NWID_HORIZONTAL),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
466 NWidget(WWT_EMPTY, COLOUR_RED, EMW_FACE), SetMinimalSize(1, 1), SetFill(false, false),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
467 NWidget(NWID_SPACER), SetFill(1, 0),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
468 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
469 NWidget(NWID_SPACER), SetFill(1, 1), SetResize(0, 1),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
470 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
471 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
472 };
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
473
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
474 static const Widget _errmsg_face_widgets[] = {
11793
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
475 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_RED, 0, 10, 0, 13, STR_BLACK_CROSS, STR_TOOLTIP_CLOSE_WINDOW},
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
476 { WWT_CAPTION, RESIZE_NONE, COLOUR_RED, 11, 333, 0, 13, STR_ERROR_MESSAGE_CAPTION_OTHER_COMPANY, STR_NULL},
11793
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
477 { WWT_PANEL, RESIZE_BOTTOM, COLOUR_RED, 0, 333, 14, 136, 0x0, STR_NULL},
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
478 { WWT_EMPTY, RESIZE_NONE, COLOUR_RED, 2, 92, 16, 135, 0x0, STR_NULL},
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
479 { WWT_EMPTY, RESIZE_NONE, COLOUR_RED, 94, 331, 14, 136, 0x0, STR_NULL},
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
480 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
481 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
482
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
483 static const NWidgetPart _nested_errmsg_face_widgets[] = {
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
484 NWidget(NWID_HORIZONTAL),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
485 NWidget(WWT_CLOSEBOX, COLOUR_RED, EMW_CLOSE),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
486 NWidget(WWT_CAPTION, COLOUR_RED, EMW_CAPTION), SetDataTip(STR_ERROR_MESSAGE_CAPTION_OTHER_COMPANY, STR_NULL),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
487 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
488 NWidget(WWT_PANEL, COLOUR_RED, EMW_PANEL),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
489 NWidget(NWID_HORIZONTAL), SetPIP(2, 1, 2),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
490 NWidget(WWT_EMPTY, COLOUR_RED, EMW_FACE), SetMinimalSize(91, 120), SetPadding(2, 0, 1, 0),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
491 NWidget(WWT_EMPTY, COLOUR_RED, EMW_MESSAGE), SetMinimalSize(238, 123),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
492 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
493 NWidget(NWID_SPACER), SetResize(0, 1),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
494 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
495 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
496 };
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
497
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
498 struct ErrmsgWindow : public Window {
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
499 private:
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
500 uint duration;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
501 uint64 decode_params[20];
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
502 StringID message_1;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
503 StringID message_2;
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10201
diff changeset
504 bool show_company_manager_face;
7750
2df30880f88b (svn r11287) -Codechange: add support for pushing paramaters into NewIndustries' error messages. Patch by Csaboka.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
505
11445
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
506 int y[4];
9682
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
507
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
508 public:
12008
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
509 ErrmsgWindow(Point pt, int width, int height, StringID msg1, StringID msg2, const Widget *widget, bool show_company_manager_face, bool no_timeout) :
9301
686aa69d2fcd (svn r13169) -Codechange: remove a (now) unneeded parameter of one of the Window constructors.
rubidium <rubidium@openttd.org>
parents: 9285
diff changeset
510 Window(pt.x, pt.y, width, height, WC_ERRMSG, widget),
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10201
diff changeset
511 show_company_manager_face(show_company_manager_face)
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
512 {
12008
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
513 this->duration = no_timeout ? 0 : _settings_client.gui.errmsg_duration;
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
514 CopyOutDParam(this->decode_params, 0, lengthof(this->decode_params));
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
515 this->message_1 = msg1;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
516 this->message_2 = msg2;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
517 this->desc_flags = WDF_STD_BTN | WDF_DEF_WIDGET;
9682
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
518
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
519 SwitchToErrorRefStack();
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
520 RewindTextRefStack();
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
521
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
522 assert(msg2 != INVALID_STRING_ID);
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
523
11793
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
524 int text_width = this->widget[EMW_MESSAGE].right - this->widget[EMW_MESSAGE].left;
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
525 int h2 = GetStringHeight(msg2, text_width); // msg2 is printed first
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
526 int h1 = (msg1 == INVALID_STRING_ID) ? 0 : GetStringHeight(msg1, text_width);
9682
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
527
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
528 SwitchToNormalRefStack();
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
529
11445
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
530 int h = 20 + h1 + h2;
9682
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
531 height = max<int>(height, h);
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
532
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
533 if (msg1 == INVALID_STRING_ID) {
11445
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
534 y[2] = 14 + 1;
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
535 y[3] = height - 1;
9682
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
536 } else {
11445
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
537 int over = (height - 16 - h1 - h2) / 2;
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
538 y[1] = height - 1;
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
539 y[0] = y[1] - h1 - over;
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
540 y[2] = 14 + 1;
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
541 y[3] = y[2] + h2 + over;
9682
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
542 }
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
543
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
544 this->FindWindowPlacementAndResize(width, height);
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
545 }
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
546
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
547 virtual void OnPaint()
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
548 {
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
549 CopyInDParam(0, this->decode_params, lengthof(this->decode_params));
9273
72a6d2e60834 (svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents: 9272
diff changeset
550 this->DrawWidgets();
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
551 CopyInDParam(0, this->decode_params, lengthof(this->decode_params));
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
552
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
553 /* If the error message comes from a NewGRF, we must use the text ref. stack reserved for error messages.
9272
22954a91c5aa (svn r13138) -Codechange: remove the need for IsWindowOfPrototype.
rubidium <rubidium@openttd.org>
parents: 9265
diff changeset
554 * If the message doesn't come from a NewGRF, it won't use the TTDP-style text ref. stack, so we won't hurt anything
22954a91c5aa (svn r13138) -Codechange: remove the need for IsWindowOfPrototype.
rubidium <rubidium@openttd.org>
parents: 9265
diff changeset
555 */
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
556 SwitchToErrorRefStack();
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
557 RewindTextRefStack();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
558
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10201
diff changeset
559 if (this->show_company_manager_face) {
11922
0a4b63f3f3c3 (svn r16325) -Codechange: replace GetPoolItem(index) by PoolItem::Get(index)
smatz <smatz@openttd.org>
parents: 11865
diff changeset
560 const Company *c = Company::Get((CompanyID)GetDParamX(this->decode_params, 2));
11793
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
561 DrawCompanyManagerFace(c->face, c->colour, this->widget[EMW_FACE].left, this->widget[EMW_FACE].top);
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
562 }
7750
2df30880f88b (svn r11287) -Codechange: add support for pushing paramaters into NewIndustries' error messages. Patch by Csaboka.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
563
11793
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
564 DrawStringMultiLine(this->widget[EMW_MESSAGE].left, this->widget[EMW_MESSAGE].right, y[2], y[3], this->message_2, TC_FROMSTRING, SA_CENTER);
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
565 if (this->message_1 != INVALID_STRING_ID) DrawStringMultiLine(this->widget[EMW_MESSAGE].left, this->widget[EMW_MESSAGE].right, y[0], y[1], this->message_1, TC_FROMSTRING, SA_CENTER);
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
566
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
567 /* Switch back to the normal text ref. stack for NewGRF texts */
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
568 SwitchToNormalRefStack();
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
569 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
570
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
571 virtual void OnMouseLoop()
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
572 {
12008
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
573 /* Disallow closing the window too easily, if timeout is disabled */
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
574 if (_right_button_down && this->duration != 0) delete this;
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
575 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
576
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
577 virtual void OnHundredthTick()
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
578 {
12008
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
579 /* Timeout enabled? */
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
580 if (this->duration != 0) {
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
581 this->duration--;
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
582 if (this->duration == 0) delete this;
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
583 }
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
584 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
585
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
586 ~ErrmsgWindow()
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
587 {
10816
35b3e8e25590 (svn r15151) -Fix: tile 0 can now be highlighted as error tile
Yexo <Yexo@openttd.org>
parents: 10771
diff changeset
588 SetRedErrorSquare(INVALID_TILE);
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
589 extern StringID _switch_mode_errorstr;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
590 _switch_mode_errorstr = INVALID_STRING_ID;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
591 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
592
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9273
diff changeset
593 virtual EventState OnKeyPress(uint16 key, uint16 keycode)
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
594 {
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9273
diff changeset
595 if (keycode != WKC_SPACE) return ES_NOT_HANDLED;
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
596 delete this;
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9273
diff changeset
597 return ES_HANDLED;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
598 }
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
599 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
600
12008
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
601 /**
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
602 * Display an error message in a window.
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
603 * @param msg_1 Detailed error message showed in second line. Can be INVALID_STRING_ID.
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
604 * @param msg_2 General error message showed in first line. Must be valid.
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
605 * @param x World X position (TileVirtX) of the error location. Set both x and y to 0 to just center the message when there is no related error tile.
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
606 * @param y World Y position (TileVirtY) of the error location. Set both x and y to 0 to just center the message when there is no related error tile.
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
607 * @param no_timeout Set to true, if the message is that important that it should not close automatically after some time.
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
608 */
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
609 void ShowErrorMessage(StringID msg_1, StringID msg_2, int x, int y, bool no_timeout)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
610 {
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
611 static Widget *generated_errmsg_widgets = NULL;
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
612 static Widget *generated_errmsg_face_widgets = NULL;
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
613
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
614 DeleteWindowById(WC_ERRMSG, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
615
12008
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
616 if (_settings_client.gui.errmsg_duration == 0 && !no_timeout) return;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
617
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
618 if (msg_2 == STR_NULL) msg_2 = STR_EMPTY;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
619
8819
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
620 Point pt;
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
621 const ViewPort *vp;
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
622
11792
27fee64a19f0 (svn r16182) -Fix: hardcoded (old sized) MAX_COMPANIES constant
rubidium <rubidium@openttd.org>
parents: 11770
diff changeset
623 if (msg_1 != STR_ERROR_OWNED_BY || GetDParam(2) >= MAX_COMPANIES) {
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
624 if ((x | y) != 0) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
625 pt = RemapCoords2(x, y);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
626 vp = FindWindowById(WC_MAIN_WINDOW, 0)->viewport;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
627
6201
3b141366478a (svn r8987) -Cleanup: doxygen changes. Again. Mostly (still) @files missing tags and (more than just) a few comments style.
belugas <belugas@openttd.org>
parents: 6197
diff changeset
628 /* move x pos to opposite corner */
6626
f940341a80f0 (svn r9846) -Codechange: introduced ZOOM_LVL_MIN and ZOOM_LVL_MAX for the obvious reasons
truelight <truelight@openttd.org>
parents: 6492
diff changeset
629 pt.x = UnScaleByZoom(pt.x - vp->virtual_left, vp->zoom) + vp->left;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
630 pt.x = (pt.x < (_screen.width >> 1)) ? _screen.width - 260 : 20;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
631
6201
3b141366478a (svn r8987) -Cleanup: doxygen changes. Again. Mostly (still) @files missing tags and (more than just) a few comments style.
belugas <belugas@openttd.org>
parents: 6197
diff changeset
632 /* move y pos to opposite corner */
6626
f940341a80f0 (svn r9846) -Codechange: introduced ZOOM_LVL_MIN and ZOOM_LVL_MAX for the obvious reasons
truelight <truelight@openttd.org>
parents: 6492
diff changeset
633 pt.y = UnScaleByZoom(pt.y - vp->virtual_top, vp->zoom) + vp->top;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
634 pt.y = (pt.y < (_screen.height >> 1)) ? _screen.height - 80 : 100;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
635
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
636 } else {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
637 pt.x = (_screen.width - 240) >> 1;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
638 pt.y = (_screen.height - 46) >> 1;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
639 }
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
640
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
641 const Widget *wid = InitializeWidgetArrayFromNestedWidgets(_nested_errmsg_widgets, lengthof(_nested_errmsg_widgets),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
642 _errmsg_widgets, &generated_errmsg_widgets);
12008
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
643 new ErrmsgWindow(pt, 240, 46, msg_1, msg_2, wid, false, no_timeout);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
644 } else {
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
645 if ((x | y) != 0) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
646 pt = RemapCoords2(x, y);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
647 vp = FindWindowById(WC_MAIN_WINDOW, 0)->viewport;
9693
cf5a441f1069 (svn r13800) -Codechange: minor comment style fixes in misc_gui.cpp
smatz <smatz@openttd.org>
parents: 9682
diff changeset
648 pt.x = Clamp(UnScaleByZoom(pt.x - vp->virtual_left, vp->zoom) + vp->left - (334 / 2), 0, _screen.width - 334);
cf5a441f1069 (svn r13800) -Codechange: minor comment style fixes in misc_gui.cpp
smatz <smatz@openttd.org>
parents: 9682
diff changeset
649 pt.y = Clamp(UnScaleByZoom(pt.y - vp->virtual_top, vp->zoom) + vp->top - (137 / 2), 22, _screen.height - 137);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
650 } else {
9693
cf5a441f1069 (svn r13800) -Codechange: minor comment style fixes in misc_gui.cpp
smatz <smatz@openttd.org>
parents: 9682
diff changeset
651 pt.x = (_screen.width - 334) >> 1;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
652 pt.y = (_screen.height - 137) >> 1;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
653 }
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
654
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
655 const Widget *wid = InitializeWidgetArrayFromNestedWidgets(_nested_errmsg_face_widgets, lengthof(_nested_errmsg_face_widgets),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
656 _errmsg_face_widgets, &generated_errmsg_face_widgets);
12008
066420f32d18 (svn r16414) -Change: Make it harder to ignore/close important error messages. Esp. do not close them automatically after some time.
frosch <frosch@openttd.org>
parents: 11972
diff changeset
657 new ErrmsgWindow(pt, 334, 137, msg_1, msg_2, wid, true, no_timeout);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
658 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
659 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
660
6990
a19700261804 (svn r10246) -Fix (r10297): some forgotten money conversions and truncation issues. Thanks to benc for providing the patch.
rubidium <rubidium@openttd.org>
parents: 6953
diff changeset
661 void ShowEstimatedCostOrIncome(Money cost, int x, int y)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
662 {
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
663 StringID msg = STR_MESSAGE_ESTIMATED_COST;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
664
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
665 if (cost < 0) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
666 cost = -cost;
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
667 msg = STR_MESSAGE_ESTIMATED_INCOME;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
668 }
7002
fa75522e0249 (svn r10258) -Codechange: as we are now using int64 all over the place, it's better to use int64 variables in the string generating too instead of packing them into two int32s.
rubidium <rubidium@openttd.org>
parents: 6998
diff changeset
669 SetDParam(0, cost);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
670 ShowErrorMessage(INVALID_STRING_ID, msg, x, y);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
671 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
672
6990
a19700261804 (svn r10246) -Fix (r10297): some forgotten money conversions and truncation issues. Thanks to benc for providing the patch.
rubidium <rubidium@openttd.org>
parents: 6953
diff changeset
673 void ShowCostOrIncomeAnimation(int x, int y, int z, Money cost)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
674 {
10642
29bc871ff8d1 (svn r14944) -Cleanup: add spaces around some operators
rubidium <rubidium@openttd.org>
parents: 10582
diff changeset
675 Point pt = RemapCoords(x, y, z);
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
676 StringID msg = STR_INCOME_FLOAT_COST;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
677
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
678 if (cost < 0) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
679 cost = -cost;
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
680 msg = STR_INCOME_FLOAT_INCOME;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
681 }
7002
fa75522e0249 (svn r10258) -Codechange: as we are now using int64 all over the place, it's better to use int64 variables in the string generating too instead of packing them into two int32s.
rubidium <rubidium@openttd.org>
parents: 6998
diff changeset
682 SetDParam(0, cost);
6998
13ea0d5f8acf (svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight <truelight@openttd.org>
parents: 6991
diff changeset
683 AddTextEffect(msg, pt.x, pt.y, 0x250, TE_RISING);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
684 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
685
6990
a19700261804 (svn r10246) -Fix (r10297): some forgotten money conversions and truncation issues. Thanks to benc for providing the patch.
rubidium <rubidium@openttd.org>
parents: 6953
diff changeset
686 void ShowFeederIncomeAnimation(int x, int y, int z, Money cost)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
687 {
10642
29bc871ff8d1 (svn r14944) -Cleanup: add spaces around some operators
rubidium <rubidium@openttd.org>
parents: 10582
diff changeset
688 Point pt = RemapCoords(x, y, z);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
689
7002
fa75522e0249 (svn r10258) -Codechange: as we are now using int64 all over the place, it's better to use int64 variables in the string generating too instead of packing them into two int32s.
rubidium <rubidium@openttd.org>
parents: 6998
diff changeset
690 SetDParam(0, cost);
6998
13ea0d5f8acf (svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight <truelight@openttd.org>
parents: 6991
diff changeset
691 AddTextEffect(STR_FEEDER, pt.x, pt.y, 0x250, TE_RISING);
13ea0d5f8acf (svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight <truelight@openttd.org>
parents: 6991
diff changeset
692 }
13ea0d5f8acf (svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight <truelight@openttd.org>
parents: 6991
diff changeset
693
7014
d03670858cef (svn r10270) -Add: prefixed the loading indicator with an arrow, up meaning vehicle is loading, down meaning vehicle is unloading
truelight <truelight@openttd.org>
parents: 7007
diff changeset
694 TextEffectID ShowFillingPercent(int x, int y, int z, uint8 percent, StringID string)
6998
13ea0d5f8acf (svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight <truelight@openttd.org>
parents: 6991
diff changeset
695 {
13ea0d5f8acf (svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight <truelight@openttd.org>
parents: 6991
diff changeset
696 Point pt = RemapCoords(x, y, z);
13ea0d5f8acf (svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight <truelight@openttd.org>
parents: 6991
diff changeset
697
7014
d03670858cef (svn r10270) -Add: prefixed the loading indicator with an arrow, up meaning vehicle is loading, down meaning vehicle is unloading
truelight <truelight@openttd.org>
parents: 7007
diff changeset
698 assert(string != STR_NULL);
d03670858cef (svn r10270) -Add: prefixed the loading indicator with an arrow, up meaning vehicle is loading, down meaning vehicle is unloading
truelight <truelight@openttd.org>
parents: 7007
diff changeset
699
6998
13ea0d5f8acf (svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight <truelight@openttd.org>
parents: 6991
diff changeset
700 SetDParam(0, percent);
7014
d03670858cef (svn r10270) -Add: prefixed the loading indicator with an arrow, up meaning vehicle is loading, down meaning vehicle is unloading
truelight <truelight@openttd.org>
parents: 7007
diff changeset
701 return AddTextEffect(string, pt.x, pt.y, 0xFFFF, TE_STATIC);
6998
13ea0d5f8acf (svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight <truelight@openttd.org>
parents: 6991
diff changeset
702 }
13ea0d5f8acf (svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight <truelight@openttd.org>
parents: 6991
diff changeset
703
7014
d03670858cef (svn r10270) -Add: prefixed the loading indicator with an arrow, up meaning vehicle is loading, down meaning vehicle is unloading
truelight <truelight@openttd.org>
parents: 7007
diff changeset
704 void UpdateFillingPercent(TextEffectID te_id, uint8 percent, StringID string)
6998
13ea0d5f8acf (svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight <truelight@openttd.org>
parents: 6991
diff changeset
705 {
7014
d03670858cef (svn r10270) -Add: prefixed the loading indicator with an arrow, up meaning vehicle is loading, down meaning vehicle is unloading
truelight <truelight@openttd.org>
parents: 7007
diff changeset
706 assert(string != STR_NULL);
d03670858cef (svn r10270) -Add: prefixed the loading indicator with an arrow, up meaning vehicle is loading, down meaning vehicle is unloading
truelight <truelight@openttd.org>
parents: 7007
diff changeset
707
6998
13ea0d5f8acf (svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight <truelight@openttd.org>
parents: 6991
diff changeset
708 SetDParam(0, percent);
7014
d03670858cef (svn r10270) -Add: prefixed the loading indicator with an arrow, up meaning vehicle is loading, down meaning vehicle is unloading
truelight <truelight@openttd.org>
parents: 7007
diff changeset
709 UpdateTextEffect(te_id, string);
6998
13ea0d5f8acf (svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight <truelight@openttd.org>
parents: 6991
diff changeset
710 }
13ea0d5f8acf (svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight <truelight@openttd.org>
parents: 6991
diff changeset
711
10176
71daf486081d (svn r14371) -Fix [FS#2313]: loading indicator didn't stay with the front engine when turning a train in a station.
rubidium <rubidium@openttd.org>
parents: 10148
diff changeset
712 void HideFillingPercent(TextEffectID *te_id)
6998
13ea0d5f8acf (svn r10254) -Feature: loading indicator, which shows in % how full a vehicle is while loading/unloading (TheJosh)
truelight <truelight@openttd.org>
parents: 6991
diff changeset
713 {
10176
71daf486081d (svn r14371) -Fix [FS#2313]: loading indicator didn't stay with the front engine when turning a train in a station.
rubidium <rubidium@openttd.org>
parents: 10148
diff changeset
714 if (*te_id == INVALID_TE_ID) return;
71daf486081d (svn r14371) -Fix [FS#2313]: loading indicator didn't stay with the front engine when turning a train in a station.
rubidium <rubidium@openttd.org>
parents: 10148
diff changeset
715
71daf486081d (svn r14371) -Fix [FS#2313]: loading indicator didn't stay with the front engine when turning a train in a station.
rubidium <rubidium@openttd.org>
parents: 10148
diff changeset
716 RemoveTextEffect(*te_id);
71daf486081d (svn r14371) -Fix [FS#2313]: loading indicator didn't stay with the front engine when turning a train in a station.
rubidium <rubidium@openttd.org>
parents: 10148
diff changeset
717 *te_id = INVALID_TE_ID;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
718 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
719
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
720 static const Widget _tooltips_widgets[] = {
9752
617fc1c2d1db (svn r13888) -Codechange: Replace numbers with Colours enum on miscellaneous guis.
belugas <belugas@openttd.org>
parents: 9714
diff changeset
721 { WWT_PANEL, RESIZE_NONE, COLOUR_GREY, 0, 199, 0, 31, 0x0, STR_NULL},
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
722 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
723 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
724
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
725 static const NWidgetPart _nested_tooltips_widgets[] = {
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
726 NWidget(WWT_PANEL, COLOUR_GREY, 0), SetMinimalSize(200, 32), EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
727 };
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
728
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
729 struct TooltipsWindow : public Window
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
730 {
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
731 StringID string_id;
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
732 byte paramcount;
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
733 uint64 params[5];
9781
5ab8b1b156bb (svn r13922) -Codechange: Move measurement-tooltip related stuff out of the general tooltip window.
frosch <frosch@openttd.org>
parents: 9752
diff changeset
734 bool use_left_mouse_button;
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
735
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
736 TooltipsWindow(int x, int y, int width, int height, const Widget *widget,
9781
5ab8b1b156bb (svn r13922) -Codechange: Move measurement-tooltip related stuff out of the general tooltip window.
frosch <frosch@openttd.org>
parents: 9752
diff changeset
737 StringID str, uint paramcount, const uint64 params[], bool use_left_mouse_button) :
9301
686aa69d2fcd (svn r13169) -Codechange: remove a (now) unneeded parameter of one of the Window constructors.
rubidium <rubidium@openttd.org>
parents: 9285
diff changeset
738 Window(x, y, width, height, WC_TOOLTIPS, widget)
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
739 {
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
740 this->string_id = str;
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
741 assert(sizeof(this->params[0]) == sizeof(params[0]));
10201
6b20fe326959 (svn r14414) -Fix: replace instances of strncpy with strecpy as strncpy doesn't guarantee the resulting string is '\0'-terminated.
rubidium <rubidium@openttd.org>
parents: 10176
diff changeset
742 assert(paramcount <= lengthof(this->params));
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
743 memcpy(this->params, params, sizeof(this->params[0]) * paramcount);
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
744 this->paramcount = paramcount;
9781
5ab8b1b156bb (svn r13922) -Codechange: Move measurement-tooltip related stuff out of the general tooltip window.
frosch <frosch@openttd.org>
parents: 9752
diff changeset
745 this->use_left_mouse_button = use_left_mouse_button;
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
746
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
747 this->flags4 &= ~WF_WHITE_BORDER_MASK; // remove white-border from tooltip
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
748 this->widget[0].right = width;
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
749 this->widget[0].bottom = height;
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
750
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
751 FindWindowPlacementAndResize(width, height);
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
752 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
753
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
754 virtual void OnPaint()
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
755 {
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
756 GfxFillRect(0, 0, this->width - 1, this->height - 1, 0);
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
757 GfxFillRect(1, 1, this->width - 2, this->height - 2, 0x44);
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
758
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
759 for (uint arg = 0; arg < this->paramcount; arg++) {
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
760 SetDParam(arg, this->params[arg]);
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
761 }
11766
7f4acc4c2e51 (svn r16156) -Codechange: make the parameters of DrawStringMultiline the same as for DrawString (except the addition of the bottom parameter)
rubidium <rubidium@openttd.org>
parents: 11730
diff changeset
762 DrawStringMultiLine(1, this->width - 1, 0, this->height, this->string_id, TC_FROMSTRING, SA_CENTER);
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
763 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
764
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
765 virtual void OnMouseLoop()
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
766 {
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
767 /* We can show tooltips while dragging tools. These are shown as long as
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
768 * we are dragging the tool. Normal tooltips work with rmb */
9781
5ab8b1b156bb (svn r13922) -Codechange: Move measurement-tooltip related stuff out of the general tooltip window.
frosch <frosch@openttd.org>
parents: 9752
diff changeset
769 if (this->use_left_mouse_button ? !_left_button_down : !_right_button_down) delete this;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
770 }
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
771 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
772
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
773 /** Shows a tooltip
6481
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
774 * @param str String to be displayed
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
775 * @param paramcount number of params to deal with
9781
5ab8b1b156bb (svn r13922) -Codechange: Move measurement-tooltip related stuff out of the general tooltip window.
frosch <frosch@openttd.org>
parents: 9752
diff changeset
776 * @param params (optional) up to 5 pieces of additional information that may be added to a tooltip
5ab8b1b156bb (svn r13922) -Codechange: Move measurement-tooltip related stuff out of the general tooltip window.
frosch <frosch@openttd.org>
parents: 9752
diff changeset
777 * @param use_left_mouse_button close the tooltip when the left (true) or right (false) mousebutton is released
5ab8b1b156bb (svn r13922) -Codechange: Move measurement-tooltip related stuff out of the general tooltip window.
frosch <frosch@openttd.org>
parents: 9752
diff changeset
778 */
5ab8b1b156bb (svn r13922) -Codechange: Move measurement-tooltip related stuff out of the general tooltip window.
frosch <frosch@openttd.org>
parents: 9752
diff changeset
779 void GuiShowTooltips(StringID str, uint paramcount, const uint64 params[], bool use_left_mouse_button)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
780 {
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
781 static Widget *generated_tooltips_widgets = NULL;
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
782
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
783 DeleteWindowById(WC_TOOLTIPS, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
784
9781
5ab8b1b156bb (svn r13922) -Codechange: Move measurement-tooltip related stuff out of the general tooltip window.
frosch <frosch@openttd.org>
parents: 9752
diff changeset
785 if (str == STR_NULL) return;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
786
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
787 for (uint i = 0; i != paramcount; i++) SetDParam(i, params[i]);
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
788 char buffer[512];
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
789 GetString(buffer, str, lastof(buffer));
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
790
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
791 Dimension br = GetStringBoundingBox(buffer);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
792 br.width += 6; br.height += 4; // increase slightly to have some space around the box
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
793
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
794 /* Cut tooltip length to 200 pixels max, wrap to new line if longer */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
795 if (br.width > 200) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
796 br.height += ((br.width - 4) / 176) * 10;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
797 br.width = 200;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
798 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
799
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
800 /* Correctly position the tooltip position, watch out for window and cursor size
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
801 * Clamp value to below main toolbar and above statusbar. If tooltip would
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
802 * go below window, flip it so it is shown above the cursor */
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
803 int y = Clamp(_cursor.pos.y + _cursor.size.y + _cursor.offs.y + 5, 22, _screen.height - 12);
12262
fd3b92f848cc (svn r16677) -Codechange: Dimension width and height are unsigned.
alberth <alberth@openttd.org>
parents: 12261
diff changeset
804 if (y + (int)br.height > _screen.height - 12) y = _cursor.pos.y + _cursor.offs.y - (int)br.height - 5;
fd3b92f848cc (svn r16677) -Codechange: Dimension width and height are unsigned.
alberth <alberth@openttd.org>
parents: 12261
diff changeset
805 int x = Clamp(_cursor.pos.x - (int)(br.width >> 1), 0, _screen.width - (int)br.width);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
806
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
807 const Widget *wid = InitializeWidgetArrayFromNestedWidgets(_nested_tooltips_widgets, lengthof(_nested_tooltips_widgets),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
808 _tooltips_widgets, &generated_tooltips_widgets);
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
809 new TooltipsWindow(x, y, br.width, br.height, wid, str, paramcount, params, use_left_mouse_button);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
810 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
811
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
812
12263
2af84c928595 (svn r16678) -Codechange: Turn CargoArray into a class, so one does not have to deal with sizeof() wrt. typedef-ed arrays.
frosch <frosch@openttd.org>
parents: 12262
diff changeset
813 static int DrawStationCoverageText(const CargoArray &cargos,
12365
a56923c27ba6 (svn r16789) -Codechange: unify the drawing of the Accepts/Supplies cargo lists in the station build windows.
yexo <yexo@openttd.org>
parents: 12263
diff changeset
814 int left, int right, int top, StationCoverageType sct, bool supplies)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
815 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
816 bool first = true;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
817
9648
b53049484e44 (svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents: 9572
diff changeset
818 char string[512];
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
819 char *b = InlineString(string, supplies ? STR_STATION_BUILD_SUPPLIES_CARGO : STR_STATION_BUILD_ACCEPTS_CARGO);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
820
7241
c40c1ad02f45 (svn r10522) -Fix: the "build truck station" GUI showed that it would accept tourists when it does not, whereas the "build bus station" GUI did not show them when it did accept them.
rubidium <rubidium@openttd.org>
parents: 7138
diff changeset
821 for (CargoID i = 0; i < NUM_CARGO; i++) {
9648
b53049484e44 (svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents: 9572
diff changeset
822 if (b >= lastof(string) - (1 + 2 * 4)) break; // ',' or ' ' and two calls to Utf8Encode()
7241
c40c1ad02f45 (svn r10522) -Fix: the "build truck station" GUI showed that it would accept tourists when it does not, whereas the "build bus station" GUI did not show them when it did accept them.
rubidium <rubidium@openttd.org>
parents: 7138
diff changeset
823 switch (sct) {
c40c1ad02f45 (svn r10522) -Fix: the "build truck station" GUI showed that it would accept tourists when it does not, whereas the "build bus station" GUI did not show them when it did accept them.
rubidium <rubidium@openttd.org>
parents: 7138
diff changeset
824 case SCT_PASSENGERS_ONLY: if (!IsCargoInClass(i, CC_PASSENGERS)) continue; break;
c40c1ad02f45 (svn r10522) -Fix: the "build truck station" GUI showed that it would accept tourists when it does not, whereas the "build bus station" GUI did not show them when it did accept them.
rubidium <rubidium@openttd.org>
parents: 7138
diff changeset
825 case SCT_NON_PASSENGERS_ONLY: if (IsCargoInClass(i, CC_PASSENGERS)) continue; break;
c40c1ad02f45 (svn r10522) -Fix: the "build truck station" GUI showed that it would accept tourists when it does not, whereas the "build bus station" GUI did not show them when it did accept them.
rubidium <rubidium@openttd.org>
parents: 7138
diff changeset
826 case SCT_ALL: break;
c40c1ad02f45 (svn r10522) -Fix: the "build truck station" GUI showed that it would accept tourists when it does not, whereas the "build bus station" GUI did not show them when it did accept them.
rubidium <rubidium@openttd.org>
parents: 7138
diff changeset
827 default: NOT_REACHED();
c40c1ad02f45 (svn r10522) -Fix: the "build truck station" GUI showed that it would accept tourists when it does not, whereas the "build bus station" GUI did not show them when it did accept them.
rubidium <rubidium@openttd.org>
parents: 7138
diff changeset
828 }
12261
c42d8d239142 (svn r16676) -Codechange: Rename AcceptedCargo to CargoArray and its instances to more meaningful names.
frosch <frosch@openttd.org>
parents: 12244
diff changeset
829 if (cargos[i] >= (supplies ? 1U : 8U)) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
830 if (first) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
831 first = false;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
832 } else {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
833 /* Add a comma if this is not the first item */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
834 *b++ = ',';
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
835 *b++ = ' ';
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
836 }
12415
6a77d1df56e2 (svn r16849) -Codechange: replace GetCargo() by CargoSpec::Get()
smatz <smatz@openttd.org>
parents: 12365
diff changeset
837 b = InlineString(b, CargoSpec::Get(i)->name);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
838 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
839 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
840
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
841 /* If first is still true then no cargo is accepted */
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
842 if (first) b = InlineString(b, STR_JUST_NOTHING);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
843
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
844 *b = '\0';
8041
085c454f158b (svn r11601) -Codechange: more strict break conditions for _userstring, assert when it overflows anyway (eg. code change without proper check change)
smatz <smatz@openttd.org>
parents: 8036
diff changeset
845
085c454f158b (svn r11601) -Codechange: more strict break conditions for _userstring, assert when it overflows anyway (eg. code change without proper check change)
smatz <smatz@openttd.org>
parents: 8036
diff changeset
846 /* Make sure we detect any buffer overflow */
9648
b53049484e44 (svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents: 9572
diff changeset
847 assert(b < endof(string));
8041
085c454f158b (svn r11601) -Codechange: more strict break conditions for _userstring, assert when it overflows anyway (eg. code change without proper check change)
smatz <smatz@openttd.org>
parents: 8036
diff changeset
848
9648
b53049484e44 (svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents: 9572
diff changeset
849 SetDParamStr(0, string);
12365
a56923c27ba6 (svn r16789) -Codechange: unify the drawing of the Accepts/Supplies cargo lists in the station build windows.
yexo <yexo@openttd.org>
parents: 12263
diff changeset
850 return DrawStringMultiLine(left, right, top, INT32_MAX, STR_JUST_RAW_STRING);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
851 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
852
8846
838e1d6a0321 (svn r12596) -Feature: show what cargos a station could be supplied with. Patch by Roujin.
rubidium <rubidium@openttd.org>
parents: 8831
diff changeset
853 /**
838e1d6a0321 (svn r12596) -Feature: show what cargos a station could be supplied with. Patch by Roujin.
rubidium <rubidium@openttd.org>
parents: 8831
diff changeset
854 * Calculates and draws the accepted or supplied cargo around the selected tile(s)
12365
a56923c27ba6 (svn r16789) -Codechange: unify the drawing of the Accepts/Supplies cargo lists in the station build windows.
yexo <yexo@openttd.org>
parents: 12263
diff changeset
855 * @param left x position where the string is to be drawn
a56923c27ba6 (svn r16789) -Codechange: unify the drawing of the Accepts/Supplies cargo lists in the station build windows.
yexo <yexo@openttd.org>
parents: 12263
diff changeset
856 * @param right the right most position to draw on
a56923c27ba6 (svn r16789) -Codechange: unify the drawing of the Accepts/Supplies cargo lists in the station build windows.
yexo <yexo@openttd.org>
parents: 12263
diff changeset
857 * @param top y position where the string is to be drawn
8846
838e1d6a0321 (svn r12596) -Feature: show what cargos a station could be supplied with. Patch by Roujin.
rubidium <rubidium@openttd.org>
parents: 8831
diff changeset
858 * @param sct which type of cargo is to be displayed (passengers/non-passengers)
838e1d6a0321 (svn r12596) -Feature: show what cargos a station could be supplied with. Patch by Roujin.
rubidium <rubidium@openttd.org>
parents: 8831
diff changeset
859 * @param rad radius around selected tile(s) to be searched
838e1d6a0321 (svn r12596) -Feature: show what cargos a station could be supplied with. Patch by Roujin.
rubidium <rubidium@openttd.org>
parents: 8831
diff changeset
860 * @param supplies if supplied cargos should be drawn, else accepted cargos
838e1d6a0321 (svn r12596) -Feature: show what cargos a station could be supplied with. Patch by Roujin.
rubidium <rubidium@openttd.org>
parents: 8831
diff changeset
861 * @return Returns the y value below the string that was drawn
838e1d6a0321 (svn r12596) -Feature: show what cargos a station could be supplied with. Patch by Roujin.
rubidium <rubidium@openttd.org>
parents: 8831
diff changeset
862 */
12365
a56923c27ba6 (svn r16789) -Codechange: unify the drawing of the Accepts/Supplies cargo lists in the station build windows.
yexo <yexo@openttd.org>
parents: 12263
diff changeset
863 int DrawStationCoverageAreaText(int left, int right, int top, StationCoverageType sct, int rad, bool supplies)
7321
66202e2e042a (svn r10684) -Codechange: some more coding style related changes. Primarily moving { to a new line.
rubidium <rubidium@openttd.org>
parents: 7266
diff changeset
864 {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
865 TileIndex tile = TileVirtXY(_thd.pos.x, _thd.pos.y);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
866 if (tile < MapSize()) {
12263
2af84c928595 (svn r16678) -Codechange: Turn CargoArray into a class, so one does not have to deal with sizeof() wrt. typedef-ed arrays.
frosch <frosch@openttd.org>
parents: 12262
diff changeset
867 CargoArray cargos;
8846
838e1d6a0321 (svn r12596) -Feature: show what cargos a station could be supplied with. Patch by Roujin.
rubidium <rubidium@openttd.org>
parents: 8831
diff changeset
868 if (supplies) {
12263
2af84c928595 (svn r16678) -Codechange: Turn CargoArray into a class, so one does not have to deal with sizeof() wrt. typedef-ed arrays.
frosch <frosch@openttd.org>
parents: 12262
diff changeset
869 cargos = GetProductionAroundTiles(tile, _thd.size.x / TILE_SIZE, _thd.size.y / TILE_SIZE, rad);
8846
838e1d6a0321 (svn r12596) -Feature: show what cargos a station could be supplied with. Patch by Roujin.
rubidium <rubidium@openttd.org>
parents: 8831
diff changeset
870 } else {
12263
2af84c928595 (svn r16678) -Codechange: Turn CargoArray into a class, so one does not have to deal with sizeof() wrt. typedef-ed arrays.
frosch <frosch@openttd.org>
parents: 12262
diff changeset
871 cargos = GetAcceptanceAroundTiles(tile, _thd.size.x / TILE_SIZE, _thd.size.y / TILE_SIZE, rad);
8846
838e1d6a0321 (svn r12596) -Feature: show what cargos a station could be supplied with. Patch by Roujin.
rubidium <rubidium@openttd.org>
parents: 8831
diff changeset
872 }
12365
a56923c27ba6 (svn r16789) -Codechange: unify the drawing of the Accepts/Supplies cargo lists in the station build windows.
yexo <yexo@openttd.org>
parents: 12263
diff changeset
873 return DrawStationCoverageText(cargos, left, right, top, sct, supplies);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
874 }
8423
c9e5db937b31 (svn r11993) -Fix: Resize station/roadstop/dock/airport construction windows if cargo acceptance list is too long.
peter1138 <peter1138@openttd.org>
parents: 8349
diff changeset
875
12365
a56923c27ba6 (svn r16789) -Codechange: unify the drawing of the Accepts/Supplies cargo lists in the station build windows.
yexo <yexo@openttd.org>
parents: 12263
diff changeset
876 return top;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
877 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
878
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
879 void CheckRedrawStationCoverage(const Window *w)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
880 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
881 if (_thd.dirty & 1) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
882 _thd.dirty &= ~1;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
883 SetWindowDirty(w);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
884 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
885 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
886
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
887 /* Delete a character at the caret position in a text buf.
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
888 * If backspace is set, delete the character before the caret,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
889 * else delete the character after it. */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
890 static void DelChar(Textbuf *tb, bool backspace)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
891 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
892 WChar c;
6214
0716cb7258dd (svn r9011) -Codechange (r9003): Rework Utf8PrevChar so that it returns a pointer to the previous UTF8 character's first byte instead of a byte-length offset
Darkvater <Darkvater@openttd.org>
parents: 6211
diff changeset
893 char *s = tb->buf + tb->caretpos;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
894
6214
0716cb7258dd (svn r9011) -Codechange (r9003): Rework Utf8PrevChar so that it returns a pointer to the previous UTF8 character's first byte instead of a byte-length offset
Darkvater <Darkvater@openttd.org>
parents: 6211
diff changeset
895 if (backspace) s = Utf8PrevChar(s);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
896
9390
45c874394355 (svn r13301) -Fix [FS#1997]: resolve more MSVC 9 x64 warnings.
rubidium <rubidium@openttd.org>
parents: 9354
diff changeset
897 uint16 len = (uint16)Utf8Decode(&c, s);
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
898 uint width = GetCharacterWidth(FS_NORMAL, c);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
899
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
900 tb->width -= width;
6214
0716cb7258dd (svn r9011) -Codechange (r9003): Rework Utf8PrevChar so that it returns a pointer to the previous UTF8 character's first byte instead of a byte-length offset
Darkvater <Darkvater@openttd.org>
parents: 6211
diff changeset
901 if (backspace) {
0716cb7258dd (svn r9011) -Codechange (r9003): Rework Utf8PrevChar so that it returns a pointer to the previous UTF8 character's first byte instead of a byte-length offset
Darkvater <Darkvater@openttd.org>
parents: 6211
diff changeset
902 tb->caretpos -= len;
0716cb7258dd (svn r9011) -Codechange (r9003): Rework Utf8PrevChar so that it returns a pointer to the previous UTF8 character's first byte instead of a byte-length offset
Darkvater <Darkvater@openttd.org>
parents: 6211
diff changeset
903 tb->caretxoffs -= width;
0716cb7258dd (svn r9011) -Codechange (r9003): Rework Utf8PrevChar so that it returns a pointer to the previous UTF8 character's first byte instead of a byte-length offset
Darkvater <Darkvater@openttd.org>
parents: 6211
diff changeset
904 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
905
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
906 /* Move the remaining characters over the marker */
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
907 memmove(s, s + len, tb->size - (s - tb->buf) - len);
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
908 tb->size -= len;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
909 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
910
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
911 /**
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
912 * Delete a character from a textbuffer, either with 'Delete' or 'Backspace'
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
913 * The character is delete from the position the caret is at
6481
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
914 * @param tb Textbuf type to be changed
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
915 * @param delmode Type of deletion, either WKC_BACKSPACE or WKC_DELETE
7372
694c7b595661 (svn r10736) -Fix: Correct all mispellings of 'successful'.
peter1138 <peter1138@openttd.org>
parents: 7346
diff changeset
916 * @return Return true on successful change of Textbuf, or false otherwise
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
917 */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
918 bool DeleteTextBufferChar(Textbuf *tb, int delmode)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
919 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
920 if (delmode == WKC_BACKSPACE && tb->caretpos != 0) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
921 DelChar(tb, true);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
922 return true;
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
923 } else if (delmode == WKC_DELETE && tb->caretpos < tb->size - 1) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
924 DelChar(tb, false);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
925 return true;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
926 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
927
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
928 return false;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
929 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
930
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
931 /**
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
932 * Delete every character in the textbuffer
6481
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
933 * @param tb Textbuf buffer to be emptied
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
934 */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
935 void DeleteTextBufferAll(Textbuf *tb)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
936 {
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
937 memset(tb->buf, 0, tb->maxsize);
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
938 tb->size = 1;
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
939 tb->width = tb->caretpos = tb->caretxoffs = 0;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
940 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
941
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
942 /**
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
943 * Insert a character to a textbuffer. If maxwidth of the Textbuf is zero,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
944 * we don't care about the visual-length but only about the physical
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
945 * length of the string
6481
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
946 * @param tb Textbuf type to be changed
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
947 * @param key Character to be inserted
7372
694c7b595661 (svn r10736) -Fix: Correct all mispellings of 'successful'.
peter1138 <peter1138@openttd.org>
parents: 7346
diff changeset
948 * @return Return true on successful change of Textbuf, or false otherwise
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
949 */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
950 bool InsertTextBufferChar(Textbuf *tb, WChar key)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
951 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
952 const byte charwidth = GetCharacterWidth(FS_NORMAL, key);
9390
45c874394355 (svn r13301) -Fix [FS#1997]: resolve more MSVC 9 x64 warnings.
rubidium <rubidium@openttd.org>
parents: 9354
diff changeset
953 uint16 len = (uint16)Utf8CharLen(key);
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
954 if (tb->size + len <= tb->maxsize && (tb->maxwidth == 0 || tb->width + charwidth <= tb->maxwidth)) {
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
955 memmove(tb->buf + tb->caretpos + len, tb->buf + tb->caretpos, tb->size - tb->caretpos);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
956 Utf8Encode(tb->buf + tb->caretpos, key);
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
957 tb->size += len;
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
958 tb->width += charwidth;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
959
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
960 tb->caretpos += len;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
961 tb->caretxoffs += charwidth;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
962 return true;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
963 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
964 return false;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
965 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
966
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
967 /**
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
968 * Handle text navigation with arrow keys left/right.
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
969 * This defines where the caret will blink and the next characer interaction will occur
6481
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
970 * @param tb Textbuf type where navigation occurs
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
971 * @param navmode Direction in which navigation occurs WKC_LEFT, WKC_RIGHT, WKC_END, WKC_HOME
7372
694c7b595661 (svn r10736) -Fix: Correct all mispellings of 'successful'.
peter1138 <peter1138@openttd.org>
parents: 7346
diff changeset
972 * @return Return true on successful change of Textbuf, or false otherwise
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
973 */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
974 bool MoveTextBufferPos(Textbuf *tb, int navmode)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
975 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
976 switch (navmode) {
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
977 case WKC_LEFT:
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
978 if (tb->caretpos != 0) {
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
979 WChar c;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
980 const char *s = Utf8PrevChar(tb->buf + tb->caretpos);
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
981 Utf8Decode(&c, s);
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
982 tb->caretpos = s - tb->buf; // -= (tb->buf + tb->caretpos - s)
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
983 tb->caretxoffs -= GetCharacterWidth(FS_NORMAL, c);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
984
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
985 return true;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
986 }
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
987 break;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
988
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
989 case WKC_RIGHT:
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
990 if (tb->caretpos < tb->size - 1) {
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
991 WChar c;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
992
9390
45c874394355 (svn r13301) -Fix [FS#1997]: resolve more MSVC 9 x64 warnings.
rubidium <rubidium@openttd.org>
parents: 9354
diff changeset
993 tb->caretpos += (uint16)Utf8Decode(&c, tb->buf + tb->caretpos);
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
994 tb->caretxoffs += GetCharacterWidth(FS_NORMAL, c);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
995
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
996 return true;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
997 }
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
998 break;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
999
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1000 case WKC_HOME:
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1001 tb->caretpos = 0;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1002 tb->caretxoffs = 0;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1003 return true;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1004
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1005 case WKC_END:
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1006 tb->caretpos = tb->size - 1;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1007 tb->caretxoffs = tb->width;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1008 return true;
8819
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1009
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1010 default:
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1011 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1012 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1013
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1014 return false;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1015 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1016
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1017 /**
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1018 * Initialize the textbuffer by supplying it the buffer to write into
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1019 * and the maximum length of this buffer
6481
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
1020 * @param tb Textbuf type which is getting initialized
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1021 * @param buf the buffer that will be holding the data for input
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1022 * @param maxsize maximum size in bytes, including terminating '\0'
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1023 * @param maxwidth maximum length in pixels of this buffer. If reached, buffer
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1024 * cannot grow, even if maxsize would allow because there is space. Width
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1025 * of zero '0' means the buffer is only restricted by maxsize */
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1026 void InitializeTextBuffer(Textbuf *tb, char *buf, uint16 maxsize, uint16 maxwidth)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1027 {
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1028 assert(maxsize != 0);
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1029
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1030 tb->buf = buf;
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1031 tb->maxsize = maxsize;
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1032 tb->maxwidth = maxwidth;
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1033 tb->caret = true;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1034 UpdateTextBufferSize(tb);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1035 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1036
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1037 /**
6481
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
1038 * Update Textbuf type with its actual physical character and screenlength
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1039 * Get the count of characters in the string as well as the width in pixels.
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1040 * Useful when copying in a larger amount of text at once
6481
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
1041 * @param tb Textbuf type which length is calculated
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1042 */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1043 void UpdateTextBufferSize(Textbuf *tb)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1044 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1045 const char *buf = tb->buf;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1046
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1047 tb->width = 0;
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1048 tb->size = 1; // terminating zero
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1049
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1050 WChar c;
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1051 while ((c = Utf8Consume(&buf)) != '\0') {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1052 tb->width += GetCharacterWidth(FS_NORMAL, c);
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1053 tb->size += Utf8CharLen(c);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1054 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1055
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1056 assert(tb->size <= tb->maxsize);
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1057
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1058 tb->caretpos = tb->size - 1;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1059 tb->caretxoffs = tb->width;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1060 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1061
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1062 bool HandleCaret(Textbuf *tb)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1063 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1064 /* caret changed? */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1065 bool b = !!(_caret_timer & 0x20);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1066
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1067 if (b != tb->caret) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1068 tb->caret = b;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1069 return true;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1070 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1071 return false;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1072 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1073
11081
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 10960
diff changeset
1074 bool QueryString::HasEditBoxFocus(const Window *w, int wid) const
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 10960
diff changeset
1075 {
12103
eecff8281292 (svn r16516) -Codechange: Added click and drag handling for nested widgets.
alberth <alberth@openttd.org>
parents: 12080
diff changeset
1076 if (w->IsWidgetGloballyFocused(wid)) return true;
eecff8281292 (svn r16516) -Codechange: Added click and drag handling for nested widgets.
alberth <alberth@openttd.org>
parents: 12080
diff changeset
1077 if (w->window_class != WC_OSK || _focused_window != w->parent) return false;
eecff8281292 (svn r16516) -Codechange: Added click and drag handling for nested widgets.
alberth <alberth@openttd.org>
parents: 12080
diff changeset
1078 return (w->parent->focused_widget != NULL && w->parent->focused_widget->type == WWT_EDITBOX) ||
eecff8281292 (svn r16516) -Codechange: Added click and drag handling for nested widgets.
alberth <alberth@openttd.org>
parents: 12080
diff changeset
1079 (w->parent->nested_focus != NULL && w->parent->nested_focus->type == WWT_EDITBOX);
11081
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 10960
diff changeset
1080 }
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 10960
diff changeset
1081
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10276
diff changeset
1082 HandleEditBoxResult QueryString::HandleEditBoxKey(Window *w, int wid, uint16 key, uint16 keycode, Window::EventState &state)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1083 {
11081
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 10960
diff changeset
1084 if (!QueryString::HasEditBoxFocus(w, wid)) return HEBR_NOT_FOCUSED;
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 10960
diff changeset
1085
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9273
diff changeset
1086 state = Window::ES_HANDLED;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1087
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1088 switch (keycode) {
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10276
diff changeset
1089 case WKC_ESC: return HEBR_CANCEL;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1090
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10276
diff changeset
1091 case WKC_RETURN: case WKC_NUM_ENTER: return HEBR_CONFIRM;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1092
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1093 case (WKC_CTRL | 'V'):
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1094 if (InsertTextBufferClipboard(&this->text)) w->InvalidateWidget(wid);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1095 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1096
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1097 case (WKC_CTRL | 'U'):
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1098 DeleteTextBufferAll(&this->text);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1099 w->InvalidateWidget(wid);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1100 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1101
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1102 case WKC_BACKSPACE: case WKC_DELETE:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1103 if (DeleteTextBufferChar(&this->text, keycode)) w->InvalidateWidget(wid);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1104 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1105
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1106 case WKC_LEFT: case WKC_RIGHT: case WKC_END: case WKC_HOME:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1107 if (MoveTextBufferPos(&this->text, keycode)) w->InvalidateWidget(wid);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1108 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1109
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1110 default:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1111 if (IsValidChar(key, this->afilter)) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1112 if (InsertTextBufferChar(&this->text, key)) w->InvalidateWidget(wid);
11319
340c5c4473f7 (svn r15669) -Change: Key presses that are not handles by an input box are no longer marked as handled but given to other OnKeyPress handlers. This makes the global shortcuts like F1 work again when an input box is open.
yexo <yexo@openttd.org>
parents: 11256
diff changeset
1113 } else {
340c5c4473f7 (svn r15669) -Change: Key presses that are not handles by an input box are no longer marked as handled but given to other OnKeyPress handlers. This makes the global shortcuts like F1 work again when an input box is open.
yexo <yexo@openttd.org>
parents: 11256
diff changeset
1114 state = Window::ES_NOT_HANDLED;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1115 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1116 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1117
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10276
diff changeset
1118 return HEBR_EDITING;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1119 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1120
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1121 void QueryString::HandleEditBox(Window *w, int wid)
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1122 {
11081
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 10960
diff changeset
1123 if (HasEditBoxFocus(w, wid) && HandleCaret(&this->text)) {
10934
76f750feb4fc (svn r15273) -Fix: OSK of the chat did not update the caret graphics
rubidium <rubidium@openttd.org>
parents: 10816
diff changeset
1124 w->InvalidateWidget(wid);
76f750feb4fc (svn r15273) -Fix: OSK of the chat did not update the caret graphics
rubidium <rubidium@openttd.org>
parents: 10816
diff changeset
1125 /* When we're not the OSK, notify 'our' OSK to redraw the widget,
76f750feb4fc (svn r15273) -Fix: OSK of the chat did not update the caret graphics
rubidium <rubidium@openttd.org>
parents: 10816
diff changeset
1126 * so the caret changes appropriately. */
76f750feb4fc (svn r15273) -Fix: OSK of the chat did not update the caret graphics
rubidium <rubidium@openttd.org>
parents: 10816
diff changeset
1127 if (w->window_class != WC_OSK) {
76f750feb4fc (svn r15273) -Fix: OSK of the chat did not update the caret graphics
rubidium <rubidium@openttd.org>
parents: 10816
diff changeset
1128 Window *w_osk = FindWindowById(WC_OSK, 0);
76f750feb4fc (svn r15273) -Fix: OSK of the chat did not update the caret graphics
rubidium <rubidium@openttd.org>
parents: 10816
diff changeset
1129 if (w_osk != NULL && w_osk->parent == w) w_osk->OnInvalidateData();
76f750feb4fc (svn r15273) -Fix: OSK of the chat did not update the caret graphics
rubidium <rubidium@openttd.org>
parents: 10816
diff changeset
1130 }
76f750feb4fc (svn r15273) -Fix: OSK of the chat did not update the caret graphics
rubidium <rubidium@openttd.org>
parents: 10816
diff changeset
1131 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1132 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1133
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1134 void QueryString::DrawEditBox(Window *w, int wid)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1135 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1136 const Widget *wi = &w->widget[wid];
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1137
8737
b62e473a9029 (svn r12425) -Feature [FS#1846]: On Screen Keyboard for input fields so someone without a keyboard can enter text too. Patch by Dominik.
rubidium <rubidium@openttd.org>
parents: 8715
diff changeset
1138 assert((wi->type & WWT_MASK) == WWT_EDITBOX);
b62e473a9029 (svn r12425) -Feature [FS#1846]: On Screen Keyboard for input fields so someone without a keyboard can enter text too. Patch by Dominik.
rubidium <rubidium@openttd.org>
parents: 8715
diff changeset
1139
5639
1b30f6b14a8a (svn r8098) -Fix (r6964): For editboxen, always fill the background with black, and not only after a valid call to FillDrawPixelInfo. This solves some graphics glitches with background widget-colour showing through on frequent redraws.
Darkvater <Darkvater@openttd.org>
parents: 5596
diff changeset
1140 GfxFillRect(wi->left + 1, wi->top + 1, wi->right - 1, wi->bottom - 1, 215);
1b30f6b14a8a (svn r8098) -Fix (r6964): For editboxen, always fill the background with black, and not only after a valid call to FillDrawPixelInfo. This solves some graphics glitches with background widget-colour showing through on frequent redraws.
Darkvater <Darkvater@openttd.org>
parents: 5596
diff changeset
1141
8819
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1142 DrawPixelInfo dpi;
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1143 int delta;
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1144
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1145 /* Limit the drawing of the string inside the widget boundaries */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1146 if (!FillDrawPixelInfo(&dpi,
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1147 wi->left + 4,
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1148 wi->top + 1,
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1149 wi->right - wi->left - 4,
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1150 wi->bottom - wi->top - 1)) {
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1151 return;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1152 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1153
8819
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1154 DrawPixelInfo *old_dpi = _cur_dpi;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1155 _cur_dpi = &dpi;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1156
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1157 /* We will take the current widget length as maximum width, with a small
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1158 * space reserved at the end for the caret to show */
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1159 const Textbuf *tb = &this->text;
8819
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1160
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1161 delta = (wi->right - wi->left) - tb->width - 10;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1162 if (delta > 0) delta = 0;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1163
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1164 if (tb->caretxoffs + delta < 0) delta = -tb->caretxoffs;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1165
11436
caf4456fbbf3 (svn r15794) -Codechange: remove the DoDrawString part of the old text drawing API
rubidium <rubidium@openttd.org>
parents: 11429
diff changeset
1166 DrawString(delta, tb->width, 0, tb->buf, TC_YELLOW);
11482
684bb10eddfc (svn r15843) -Codechange: with RTL the caret would always be drawn at the end of the textbox.
rubidium <rubidium@openttd.org>
parents: 11480
diff changeset
1167 if (HasEditBoxFocus(w, wid) && tb->caret) {
684bb10eddfc (svn r15843) -Codechange: with RTL the caret would always be drawn at the end of the textbox.
rubidium <rubidium@openttd.org>
parents: 11480
diff changeset
1168 int caret_width = GetStringBoundingBox("_").width;
684bb10eddfc (svn r15843) -Codechange: with RTL the caret would always be drawn at the end of the textbox.
rubidium <rubidium@openttd.org>
parents: 11480
diff changeset
1169 DrawString(tb->caretxoffs + delta, tb->caretxoffs + delta + caret_width, 0, "_", TC_WHITE);
684bb10eddfc (svn r15843) -Codechange: with RTL the caret would always be drawn at the end of the textbox.
rubidium <rubidium@openttd.org>
parents: 11480
diff changeset
1170 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1171
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1172 _cur_dpi = old_dpi;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1173 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1174
10563
2271e0ee2758 (svn r14820) -Codechange: use (the correct) enum-type instead of just int (Zuu)
rubidium <rubidium@openttd.org>
parents: 10547
diff changeset
1175 HandleEditBoxResult QueryStringBaseWindow::HandleEditBoxKey(int wid, uint16 key, uint16 keycode, EventState &state)
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1176 {
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9273
diff changeset
1177 return this->QueryString::HandleEditBoxKey(this, wid, key, keycode, state);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1178 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1180 void QueryStringBaseWindow::HandleEditBox(int wid)
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1181 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1182 this->QueryString::HandleEditBox(this, wid);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1183 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1184
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1185 void QueryStringBaseWindow::DrawEditBox(int wid)
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1186 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1187 this->QueryString::DrawEditBox(this, wid);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1188 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1189
10547
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1190 void QueryStringBaseWindow::OnOpenOSKWindow(int wid)
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1191 {
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1192 ShowOnScreenKeyboard(this, wid, 0, 0);
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1193 }
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1194
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1195 enum QueryStringWidgets {
11652
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1196 QUERY_STR_WIDGET_CLOSEBOX,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1197 QUERY_STR_WIDGET_CAPTION,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1198 QUERY_STR_WIDGET_BACKGROUND,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1199 QUERY_STR_WIDGET_TEXT,
10148
81642658c8be (svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents: 10145
diff changeset
1200 QUERY_STR_WIDGET_DEFAULT,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1201 QUERY_STR_WIDGET_CANCEL,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1202 QUERY_STR_WIDGET_OK
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1203 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1204
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1205
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1206 struct QueryStringWindow : public QueryStringBaseWindow
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1207 {
9916
fa925e28f10e (svn r14069) -Fix: silence MSVC 64-bits compile warnings.
rubidium <rubidium@openttd.org>
parents: 9897
diff changeset
1208 QueryStringWindow(uint16 size, const WindowDesc *desc, Window *parent) : QueryStringBaseWindow(size, desc)
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1209 {
9226
843042b3278b (svn r13092) -Fix (r13042): don't add a variable in a subclass when the parent class already have it
glx <glx@openttd.org>
parents: 9186
diff changeset
1210 this->parent = parent;
11081
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 10960
diff changeset
1211 this->SetFocusedWidget(QUERY_STR_WIDGET_TEXT);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1212
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1213 this->FindWindowPlacementAndResize(desc);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1214 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1215
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1216 virtual void OnPaint()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1217 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1218 SetDParam(0, this->caption);
9273
72a6d2e60834 (svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents: 9272
diff changeset
1219 this->DrawWidgets();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1220
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1221 this->DrawEditBox(QUERY_STR_WIDGET_TEXT);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1222 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1223
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1224 void OnOk()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1225 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1226 if (this->orig == NULL || strcmp(this->text.buf, this->orig) != 0) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1227 /* If the parent is NULL, the editbox is handled by general function
9693
cf5a441f1069 (svn r13800) -Codechange: minor comment style fixes in misc_gui.cpp
smatz <smatz@openttd.org>
parents: 9682
diff changeset
1228 * HandleOnEditText */
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1229 if (this->parent != NULL) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1230 this->parent->OnQueryTextFinished(this->text.buf);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1231 } else {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1232 HandleOnEditText(this->text.buf);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1233 }
9228
68f81f013069 (svn r13094) -Fix: closing the QueryWindow would always send a 'query has been cancelled message' even when it was not cancelled causing joining passworded servers/companies to fail.
rubidium <rubidium@openttd.org>
parents: 9227
diff changeset
1234 this->handled = true;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1235 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1236 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1237
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1238 virtual void OnClick(Point pt, int widget)
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1239 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1240 switch (widget) {
10148
81642658c8be (svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents: 10145
diff changeset
1241 case QUERY_STR_WIDGET_DEFAULT:
81642658c8be (svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents: 10145
diff changeset
1242 this->text.buf[0] = '\0';
81642658c8be (svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents: 10145
diff changeset
1243 /* Fallthrough */
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1244 case QUERY_STR_WIDGET_OK:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1245 this->OnOk();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1246 /* Fallthrough */
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1247 case QUERY_STR_WIDGET_CANCEL:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1248 delete this;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1249 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1250 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1251 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1252
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1253 virtual void OnMouseLoop()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1254 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1255 this->HandleEditBox(QUERY_STR_WIDGET_TEXT);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1256 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1257
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9273
diff changeset
1258 virtual EventState OnKeyPress(uint16 key, uint16 keycode)
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1259 {
11319
340c5c4473f7 (svn r15669) -Change: Key presses that are not handles by an input box are no longer marked as handled but given to other OnKeyPress handlers. This makes the global shortcuts like F1 work again when an input box is open.
yexo <yexo@openttd.org>
parents: 11256
diff changeset
1260 EventState state = ES_NOT_HANDLED;
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9273
diff changeset
1261 switch (this->HandleEditBoxKey(QUERY_STR_WIDGET_TEXT, key, keycode, state)) {
9399
617011acf06f (svn r13310) -Fix: invalidate OSK when parent editbox changes (from keyboard)
smatz <smatz@openttd.org>
parents: 9394
diff changeset
1262 default: NOT_REACHED();
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10276
diff changeset
1263 case HEBR_EDITING: {
9399
617011acf06f (svn r13310) -Fix: invalidate OSK when parent editbox changes (from keyboard)
smatz <smatz@openttd.org>
parents: 9394
diff changeset
1264 Window *osk = FindWindowById(WC_OSK, 0);
617011acf06f (svn r13310) -Fix: invalidate OSK when parent editbox changes (from keyboard)
smatz <smatz@openttd.org>
parents: 9394
diff changeset
1265 if (osk != NULL && osk->parent == this) osk->OnInvalidateData();
617011acf06f (svn r13310) -Fix: invalidate OSK when parent editbox changes (from keyboard)
smatz <smatz@openttd.org>
parents: 9394
diff changeset
1266 } break;
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10276
diff changeset
1267 case HEBR_CONFIRM: this->OnOk();
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1268 /* FALL THROUGH */
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10276
diff changeset
1269 case HEBR_CANCEL: delete this; break; // close window, abandon changes
11081
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 10960
diff changeset
1270 case HEBR_NOT_FOCUSED: break;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1271 }
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9273
diff changeset
1272 return state;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1273 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1274
10547
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1275 virtual void OnOpenOSKWindow(int wid)
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1276 {
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1277 ShowOnScreenKeyboard(this, wid, QUERY_STR_WIDGET_CANCEL, QUERY_STR_WIDGET_OK);
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1278 }
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1279
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1280 ~QueryStringWindow()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1281 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1282 if (!this->handled && this->parent != NULL) {
9393
aeff7240b474 (svn r13304) -Fix (r13042): possible double free (showed up in r13092)
smatz <smatz@openttd.org>
parents: 9390
diff changeset
1283 Window *parent = this->parent;
aeff7240b474 (svn r13304) -Fix (r13042): possible double free (showed up in r13092)
smatz <smatz@openttd.org>
parents: 9390
diff changeset
1284 this->parent = NULL; // so parent doesn't try to delete us again
aeff7240b474 (svn r13304) -Fix (r13042): possible double free (showed up in r13092)
smatz <smatz@openttd.org>
parents: 9390
diff changeset
1285 parent->OnQueryTextFinished(NULL);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1286 }
9166
45b1388fe9ba (svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium <rubidium@openttd.org>
parents: 9164
diff changeset
1287 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1288 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1289
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1290 static const Widget _query_string_widgets[] = {
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1291 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_BLACK_CROSS, STR_TOOLTIP_CLOSE_WINDOW}, // QUERY_STR_WIDGET_CLOSEBOX
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1292 { WWT_CAPTION, RESIZE_NONE, COLOUR_GREY, 11, 259, 0, 13, STR_QUERY_CAPTION, STR_NULL}, // QUERY_STR_WIDGET_CAPTION
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1293 { WWT_PANEL, RESIZE_NONE, COLOUR_GREY, 0, 259, 14, 29, 0x0, STR_NULL}, // QUERY_STR_WIDGET_BACKGROUND
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1294 { WWT_EDITBOX, RESIZE_NONE, COLOUR_GREY, 2, 257, 16, 27, 0x0, STR_NULL}, // QUERY_STR_WIDGET_TEXT
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1295 { WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 0, 86, 30, 41, STR_DEFAULT, STR_NULL}, // QUERY_STR_WIDGET_DEFAULT
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1296 { WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 87, 172, 30, 41, STR_QUERY_CANCEL, STR_NULL}, // QUERY_STR_WIDGET_CANCEL
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1297 { WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 173, 259, 30, 41, STR_QUERY_OK, STR_NULL}, // QUERY_STR_WIDGET_OK
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1298 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1299 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1300
11653
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1301 static const NWidgetPart _nested_query_string_widgets[] = {
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1302 NWidget(NWID_HORIZONTAL),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1303 NWidget(WWT_CLOSEBOX, COLOUR_GREY, QUERY_STR_WIDGET_CLOSEBOX),
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1304 NWidget(WWT_CAPTION, COLOUR_GREY, QUERY_STR_WIDGET_CAPTION), SetDataTip(STR_QUERY_CAPTION, STR_NULL),
11653
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1305 EndContainer(),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1306 NWidget(WWT_PANEL, COLOUR_GREY, QUERY_STR_WIDGET_BACKGROUND),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1307 NWidget(WWT_EDITBOX, COLOUR_GREY, QUERY_STR_WIDGET_TEXT), SetMinimalSize(256, 12), SetPadding(2, 2, 2, 2),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1308 EndContainer(),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1309 NWidget(NWID_HORIZONTAL),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1310 NWidget(WWT_TEXTBTN, COLOUR_GREY, QUERY_STR_WIDGET_DEFAULT), SetMinimalSize(87, 12), SetDataTip(STR_DEFAULT, STR_NULL),
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1311 NWidget(WWT_TEXTBTN, COLOUR_GREY, QUERY_STR_WIDGET_CANCEL), SetMinimalSize(86, 12), SetDataTip(STR_QUERY_CANCEL, STR_NULL),
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1312 NWidget(WWT_TEXTBTN, COLOUR_GREY, QUERY_STR_WIDGET_OK), SetMinimalSize(87, 12), SetDataTip(STR_QUERY_OK, STR_NULL),
11653
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1313 EndContainer(),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1314 };
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1315
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11369
diff changeset
1316 static const WindowDesc _query_string_desc(
7341
549c757023fc (svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium <rubidium@openttd.org>
parents: 7321
diff changeset
1317 190, 219, 260, 42, 260, 42,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5750
diff changeset
1318 WC_QUERY_STRING, WC_NONE,
8019
9e262ce81acf (svn r11579) -Revert(r11578): some cases of key propagation are not handled correctly.
belugas <belugas@openttd.org>
parents: 8018
diff changeset
1319 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
11653
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1320 _query_string_widgets, _nested_query_string_widgets, lengthof(_nested_query_string_widgets)
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11369
diff changeset
1321 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1322
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1323 /** Show a query popup window with a textbox in it.
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1324 * @param str StringID for the text shown in the textbox
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1325 * @param caption StringID of text shown in caption of querywindow
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1326 * @param maxsize maximum size in bytes (including terminating '\0')
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1327 * @param maxwidth maximum width in pixels allowed
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1328 * @param parent pointer to a Window that will handle the events (ok/cancel) of this
9314
93a764ca7ec7 (svn r13182) -Doc: add documentation to mostly rail_gui related functions. Patch by Alberth.
rubidium <rubidium@openttd.org>
parents: 9301
diff changeset
1329 * window. If NULL, results are handled by global function HandleOnEditText
10145
dbe302da93a8 (svn r14331) -Codechange: use an enum as additional parameter for ShowQueryString()
smatz <smatz@openttd.org>
parents: 10039
diff changeset
1330 * @param afilter filters out unwanted character input
dbe302da93a8 (svn r14331) -Codechange: use an enum as additional parameter for ShowQueryString()
smatz <smatz@openttd.org>
parents: 10039
diff changeset
1331 * @param flags various flags, @see QueryStringFlags
dbe302da93a8 (svn r14331) -Codechange: use an enum as additional parameter for ShowQueryString()
smatz <smatz@openttd.org>
parents: 10039
diff changeset
1332 */
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1333 void ShowQueryString(StringID str, StringID caption, uint maxsize, uint maxwidth, Window *parent, CharSetFilter afilter, QueryStringFlags flags)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1334 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1335 DeleteWindowById(WC_QUERY_STRING, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1336
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1337 QueryStringWindow *w = new QueryStringWindow(maxsize, &_query_string_desc, parent);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1338
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1339 GetString(w->edit_str_buf, str, &w->edit_str_buf[maxsize - 1]);
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1340 w->edit_str_buf[maxsize - 1] = '\0';
9897
5b558ce6cb0e (svn r14046) -Codechange: make the size of querystring "widgets" more configurable.
rubidium <rubidium@openttd.org>
parents: 9790
diff changeset
1341
10145
dbe302da93a8 (svn r14331) -Codechange: use an enum as additional parameter for ShowQueryString()
smatz <smatz@openttd.org>
parents: 10039
diff changeset
1342 if ((flags & QSF_ACCEPT_UNCHANGED) == 0) w->orig = strdup(w->edit_str_buf);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1343
10148
81642658c8be (svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents: 10145
diff changeset
1344 if ((flags & QSF_ENABLE_DEFAULT) == 0) {
81642658c8be (svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents: 10145
diff changeset
1345 /* without the "Default" button, make "Cancel" and "OK" buttons wider */
81642658c8be (svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents: 10145
diff changeset
1346 w->SetWidgetHiddenState(QUERY_STR_WIDGET_DEFAULT, true);
81642658c8be (svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents: 10145
diff changeset
1347 w->widget[QUERY_STR_WIDGET_CANCEL].left = 0;
81642658c8be (svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents: 10145
diff changeset
1348 w->widget[QUERY_STR_WIDGET_CANCEL].right = w->width / 2 - 1;
81642658c8be (svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents: 10145
diff changeset
1349 w->widget[QUERY_STR_WIDGET_OK].left = w->width / 2;
81642658c8be (svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents: 10145
diff changeset
1350 w->widget[QUERY_STR_WIDGET_OK].right = w->width - 1;
81642658c8be (svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents: 10145
diff changeset
1351 }
81642658c8be (svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)
smatz <smatz@openttd.org>
parents: 10145
diff changeset
1352
7997
d109780d515b (svn r11555) -Codechange: use the new members introduced in r11551.
rubidium <rubidium@openttd.org>
parents: 7954
diff changeset
1353 w->LowerWidget(QUERY_STR_WIDGET_TEXT);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1354 w->caption = caption;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1355 w->afilter = afilter;
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1356 InitializeTextBuffer(&w->text, w->edit_str_buf, maxsize, maxwidth);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1357 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1358
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1359
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1360 enum QueryWidgets {
11652
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1361 QUERY_WIDGET_CLOSEBOX,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1362 QUERY_WIDGET_CAPTION,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1363 QUERY_WIDGET_BACKGROUND,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1364 QUERY_WIDGET_NO,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1365 QUERY_WIDGET_YES
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1366 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1367
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1368 /**
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1369 * Window used for asking the user a YES/NO question.
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1370 */
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1371 struct QueryWindow : public Window {
9319
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1372 QueryCallbackProc *proc; ///< callback function executed on closing of popup. Window* points to parent, bool is true if 'yes' clicked, false otherwise
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1373 uint64 params[10]; ///< local copy of _decode_parameters
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1374 StringID message; ///< message shown for query window
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1375
9319
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1376 QueryWindow(const WindowDesc *desc, StringID caption, StringID message, Window *parent, QueryCallbackProc *callback) : Window(desc)
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1377 {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1378 if (parent == NULL) parent = FindWindowById(WC_MAIN_WINDOW, 0);
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1379 this->parent = parent;
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1380 this->left = parent->left + (parent->width / 2) - (this->width / 2);
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1381 this->top = parent->top + (parent->height / 2) - (this->height / 2);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1382
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1383 /* Create a backup of the variadic arguments to strings because it will be
9693
cf5a441f1069 (svn r13800) -Codechange: minor comment style fixes in misc_gui.cpp
smatz <smatz@openttd.org>
parents: 9682
diff changeset
1384 * overridden pretty often. We will copy these back for drawing */
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1385 CopyOutDParam(this->params, 0, lengthof(this->params));
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1386 this->widget[QUERY_WIDGET_CAPTION].data = caption;
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1387 this->message = message;
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1388 this->proc = callback;
9178
708347596d9a (svn r13041) -Fix: calling a virtual function on a not fully constructed object is bound to cause errors.
rubidium <rubidium@openttd.org>
parents: 9176
diff changeset
1389
708347596d9a (svn r13041) -Fix: calling a virtual function on a not fully constructed object is bound to cause errors.
rubidium <rubidium@openttd.org>
parents: 9176
diff changeset
1390 this->FindWindowPlacementAndResize(desc);
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1391 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1392
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1393 ~QueryWindow()
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1394 {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1395 if (this->proc != NULL) this->proc(this->parent, false);
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1396 }
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1397
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1398 virtual void OnPaint()
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1399 {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1400 CopyInDParam(0, this->params, lengthof(this->params));
9273
72a6d2e60834 (svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents: 9272
diff changeset
1401 this->DrawWidgets();
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1402 CopyInDParam(0, this->params, lengthof(this->params));
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1403
11766
7f4acc4c2e51 (svn r16156) -Codechange: make the parameters of DrawStringMultiline the same as for DrawString (except the addition of the bottom parameter)
rubidium <rubidium@openttd.org>
parents: 11730
diff changeset
1404 DrawStringMultiLine(1, this->width - 1, 14, 62, this->message, TC_FROMSTRING, SA_CENTER);
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1405 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1406
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1407 virtual void OnClick(Point pt, int widget)
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1408 {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1409 switch (widget) {
9319
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1410 case QUERY_WIDGET_YES: {
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1411 /* in the Generate New World window, clicking 'Yes' causes
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1412 * DeleteNonVitalWindows() to be called - we shouldn't be in a window then */
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1413 QueryCallbackProc *proc = this->proc;
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1414 Window *parent = this->parent;
9394
f62de1e2ea9a (svn r13305) -Fix (r13039): Confirmation window sent both yes and no answers instead of just yes.
peter1138 <peter1138@openttd.org>
parents: 9393
diff changeset
1415 /* Prevent the destructor calling the callback function */
f62de1e2ea9a (svn r13305) -Fix (r13039): Confirmation window sent both yes and no answers instead of just yes.
peter1138 <peter1138@openttd.org>
parents: 9393
diff changeset
1416 this->proc = NULL;
9319
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1417 delete this;
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1418 if (proc != NULL) {
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1419 proc(parent, true);
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1420 proc = NULL;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1421 }
9319
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1422 } break;
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1423 case QUERY_WIDGET_NO:
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1424 delete this;
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1425 break;
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1426 }
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1427 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1428
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9273
diff changeset
1429 virtual EventState OnKeyPress(uint16 key, uint16 keycode)
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1430 {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1431 /* ESC closes the window, Enter confirms the action */
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1432 switch (keycode) {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1433 case WKC_RETURN:
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1434 case WKC_NUM_ENTER:
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1435 if (this->proc != NULL) {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1436 this->proc(this->parent, true);
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1437 this->proc = NULL;
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1438 }
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1439 /* Fallthrough */
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1440 case WKC_ESC:
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1441 delete this;
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9273
diff changeset
1442 return ES_HANDLED;
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1443 }
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9273
diff changeset
1444 return ES_NOT_HANDLED;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1445 }
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1446 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1447
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1448
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1449 static const Widget _query_widgets[] = {
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1450 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_RED, 0, 10, 0, 13, STR_BLACK_CROSS, STR_TOOLTIP_CLOSE_WINDOW}, // QUERY_WIDGET_CLOSEBOX
11652
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1451 { WWT_CAPTION, RESIZE_NONE, COLOUR_RED, 11, 209, 0, 13, STR_NULL, STR_NULL}, // QUERY_WIDGET_CAPTION
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1452 { WWT_PANEL, RESIZE_NONE, COLOUR_RED, 0, 209, 14, 81, 0x0, /*OVERRIDE*/STR_NULL}, // QUERY_WIDGET_BACKGROUND
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1453 {WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_YELLOW, 20, 90, 62, 73, STR_NO, STR_NULL}, // QUERY_WIDGET_NO
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1454 {WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_YELLOW, 120, 190, 62, 73, STR_YES, STR_NULL}, // QUERY_WIDGET_YES
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1455 { WIDGETS_END },
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1456 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1457
11653
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1458 static const NWidgetPart _nested_query_widgets[] = {
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1459 NWidget(NWID_HORIZONTAL),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1460 NWidget(WWT_CLOSEBOX, COLOUR_RED, QUERY_WIDGET_CLOSEBOX),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1461 NWidget(WWT_CAPTION, COLOUR_RED, QUERY_WIDGET_CAPTION), SetDataTip(STR_NULL, STR_NULL),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1462 EndContainer(),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1463 NWidget(WWT_PANEL, COLOUR_RED, QUERY_WIDGET_BACKGROUND),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1464 NWidget(NWID_SPACER), SetMinimalSize(0, 48),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1465 NWidget(NWID_HORIZONTAL), SetPIP(20, 29, 19),
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1466 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, QUERY_WIDGET_NO), SetMinimalSize(71, 12), SetDataTip(STR_NO, STR_NULL),
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1467 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, QUERY_WIDGET_YES), SetMinimalSize(71, 12), SetDataTip(STR_YES, STR_NULL),
11653
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1468 EndContainer(),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1469 NWidget(NWID_SPACER), SetMinimalSize(0, 8),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1470 EndContainer(),
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1471 };
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1472
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11369
diff changeset
1473 static const WindowDesc _query_desc(
7341
549c757023fc (svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium <rubidium@openttd.org>
parents: 7321
diff changeset
1474 WDP_CENTER, WDP_CENTER, 210, 82, 210, 82,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5750
diff changeset
1475 WC_CONFIRM_POPUP_QUERY, WC_NONE,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1476 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_UNCLICK_BUTTONS | WDF_DEF_WIDGET | WDF_MODAL,
11653
50cfe1ce7e28 (svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents: 11652
diff changeset
1477 _query_widgets, _nested_query_widgets, lengthof(_nested_query_widgets)
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11369
diff changeset
1478 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1479
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1480 /** Show a modal confirmation window with standard 'yes' and 'no' buttons
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1481 * The window is aligned to the centre of its parent.
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1482 * NOTE: You cannot use BindCString as parameter for this window!
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1483 * @param caption string shown as window caption
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1484 * @param message string that will be shown for the window
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1485 * @param parent pointer to parent window, if this pointer is NULL the parent becomes
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1486 * the main window WC_MAIN_WINDOW
9693
cf5a441f1069 (svn r13800) -Codechange: minor comment style fixes in misc_gui.cpp
smatz <smatz@openttd.org>
parents: 9682
diff changeset
1487 * @param callback callback function pointer to set in the window descriptor
cf5a441f1069 (svn r13800) -Codechange: minor comment style fixes in misc_gui.cpp
smatz <smatz@openttd.org>
parents: 9682
diff changeset
1488 */
9319
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1489 void ShowQuery(StringID caption, StringID message, Window *parent, QueryCallbackProc *callback)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1490 {
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1491 new QueryWindow(&_query_desc, caption, message, parent, callback);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1492 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1493
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1494
11862
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1495 enum SaveLoadWindowWidgets {
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1496 SLWW_CLOSE = 0,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1497 SLWW_WINDOWTITLE,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1498 SLWW_SORT_BYNAME,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1499 SLWW_SORT_BYDATE,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1500 SLWW_BACKGROUND,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1501 SLWW_FILE_BACKGROUND,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1502 SLWW_HOME_BUTTON,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1503 SLWW_DRIVES_DIRECTORIES_LIST,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1504 SLWW_SCROLLBAR,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1505 SLWW_CONTENT_DOWNLOAD, ///< only available for play scenario/heightmap (content download)
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1506 SLWW_SAVE_OSK_TITLE, ///< only available for save operations
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1507 SLWW_DELETE_SELECTION, ///< same in here
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1508 SLWW_SAVE_GAME, ///< not to mention in here too
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1509 SLWW_RESIZE,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1510 };
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1511
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1512 static const Widget _load_dialog_widgets[] = {
11862
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1513 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_BLACK_CROSS, STR_TOOLTIP_CLOSE_WINDOW}, // SLWW_CLOSE
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1514 { WWT_CAPTION, RESIZE_RIGHT, COLOUR_GREY, 11, 256, 0, 13, STR_NULL, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS}, // SLWW_WINDOWTITLE
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1515 { WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_GREY, 0, 127, 14, 25, STR_SORT_BY_NAME, STR_SORT_ORDER_TIP}, // SLWW_SORT_BYNAME
11864
86a7f7ee831d (svn r16258) -Codechange: Remove panel with negative height and some small adjustments in the load/save dialogue windows.
alberth <alberth@openttd.org>
parents: 11863
diff changeset
1516 { WWT_PUSHTXTBTN, RESIZE_RIGHT, COLOUR_GREY, 128, 256, 14, 25, STR_SORT_BY_DATE, STR_SORT_ORDER_TIP}, // SLWW_SORT_BYDATE
11862
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1517 { WWT_PANEL, RESIZE_RIGHT, COLOUR_GREY, 0, 256, 26, 47, 0x0, STR_NULL}, // SLWW_BACKGROUND
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1518 { WWT_PANEL, RESIZE_RB, COLOUR_GREY, 0, 256, 48, 153, 0x0, STR_NULL}, // SLWW_FILE_BACKGROUND
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1519 { WWT_PUSHIMGBTN, RESIZE_LR, COLOUR_GREY, 245, 256, 48, 59, SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON}, // SLWW_HOME_BUTTON
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1520 { WWT_INSET, RESIZE_RB, COLOUR_GREY, 2, 243, 50, 139, 0x0, STR_SAVELOAD_LIST_TOOLTIP}, // SLWW_DRIVES_DIRECTORIES_LIST
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1521 { WWT_SCROLLBAR, RESIZE_LRB, COLOUR_GREY, 245, 256, 60, 141, 0x0, STR_TOOLTIP_VSCROLL_BAR_SCROLLS_LIST}, // SLWW_SCROLLBAR
11864
86a7f7ee831d (svn r16258) -Codechange: Remove panel with negative height and some small adjustments in the load/save dialogue windows.
alberth <alberth@openttd.org>
parents: 11863
diff changeset
1522 { WWT_PUSHTXTBTN, RESIZE_RTB, COLOUR_GREY, 0, 244, 142, 153, STR_CONTENT_INTRO_BUTTON, STR_CONTENT_INTRO_BUTTON_TIP}, // SLWW_CONTENT_DOWNLOAD
11863
b45a70470b2d (svn r16257) -Codechange: Added empty widgets in load dialogue to move the resize box to the right place in the array.
alberth <alberth@openttd.org>
parents: 11862
diff changeset
1523 { WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 0, 0, 0x0, STR_NULL}, // SLWW_SAVE_OSK_TITLE
b45a70470b2d (svn r16257) -Codechange: Added empty widgets in load dialogue to move the resize box to the right place in the array.
alberth <alberth@openttd.org>
parents: 11862
diff changeset
1524 { WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 0, 0, 0x0, STR_NULL}, // SLWW_DELETE_SELECTION
b45a70470b2d (svn r16257) -Codechange: Added empty widgets in load dialogue to move the resize box to the right place in the array.
alberth <alberth@openttd.org>
parents: 11862
diff changeset
1525 { WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 0, 0, 0x0, STR_NULL}, // SLWW_SAVE_GAME
b45a70470b2d (svn r16257) -Codechange: Added empty widgets in load dialogue to move the resize box to the right place in the array.
alberth <alberth@openttd.org>
parents: 11862
diff changeset
1526 { WWT_RESIZEBOX, RESIZE_LRTB, COLOUR_GREY, 245, 256, 142, 153, 0x0, STR_RESIZE_BUTTON}, // SLWW_RESIZE
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1527 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1528 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1529
11865
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1530 static const NWidgetPart _nested_load_dialog_widgets[] = {
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1531 NWidget(NWID_LAYERED),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1532 NWidget(NWID_VERTICAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1533 NWidget(NWID_HORIZONTAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1534 NWidget(WWT_CLOSEBOX, COLOUR_GREY, SLWW_CLOSE),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1535 NWidget(WWT_CAPTION, COLOUR_GREY, SLWW_WINDOWTITLE),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1536 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1537 NWidget(NWID_HORIZONTAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1538 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYNAME), SetMinimalSize(128, 12), SetDataTip(STR_SORT_BY_NAME, STR_SORT_ORDER_TIP),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1539 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYDATE), SetMinimalSize(129, 12), SetDataTip(STR_SORT_BY_DATE, STR_SORT_ORDER_TIP), SetResize(1, 0),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1540 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1541 NWidget(WWT_PANEL, COLOUR_GREY, SLWW_BACKGROUND), SetMinimalSize(257, 22), SetResize(1, 0), EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1542 NWidget(WWT_PANEL, COLOUR_GREY, SLWW_FILE_BACKGROUND),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1543 NWidget(NWID_HORIZONTAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1544 NWidget(NWID_VERTICAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1545 NWidget(WWT_INSET, COLOUR_GREY, SLWW_DRIVES_DIRECTORIES_LIST), SetMinimalSize(242, 90), SetPadding(2, 1, 2, 2),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1546 SetDataTip(0x0, STR_SAVELOAD_LIST_TOOLTIP), SetResize(2, 10), EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1547 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_CONTENT_DOWNLOAD), SetMinimalSize(245, 12), SetResize(1, 0),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1548 SetDataTip(STR_CONTENT_INTRO_BUTTON, STR_CONTENT_INTRO_BUTTON_TIP),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1549 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1550 NWidget(NWID_VERTICAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1551 NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, SLWW_HOME_BUTTON), SetMinimalSize(12, 12), SetDataTip(SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1552 NWidget(WWT_SCROLLBAR, COLOUR_GREY, SLWW_SCROLLBAR),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1553 NWidget(WWT_RESIZEBOX, COLOUR_GREY, SLWW_RESIZE),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1554 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1555 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1556 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1557 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1558 NWidget(NWID_VERTICAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1559 NWidget(NWID_HORIZONTAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1560 NWidget(NWID_LAYERED),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1561 NWidget(WWT_EMPTY, COLOUR_GREY, SLWW_SAVE_OSK_TITLE), SetMinimalSize(1, 1), SetFill(false, false),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1562 NWidget(WWT_EMPTY, COLOUR_GREY, SLWW_DELETE_SELECTION), SetMinimalSize(1, 1), SetFill(false, false),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1563 NWidget(WWT_EMPTY, COLOUR_GREY, SLWW_SAVE_GAME), SetMinimalSize(1, 1), SetFill(false, false),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1564 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1565 NWidget(NWID_SPACER), SetFill(true, false), SetResize(1, 0),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1566 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1567 NWidget(NWID_SPACER), SetFill(true, true), SetResize(1, 1),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1568 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1569 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1570 };
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1571
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1572 static const Widget _save_dialog_widgets[] = {
11862
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1573 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_BLACK_CROSS, STR_TOOLTIP_CLOSE_WINDOW}, // SLWW_CLOSE
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1574 { WWT_CAPTION, RESIZE_RIGHT, COLOUR_GREY, 11, 256, 0, 13, STR_NULL, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS}, // SLWW_WINDOWTITLE
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1575 { WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_GREY, 0, 127, 14, 25, STR_SORT_BY_NAME, STR_SORT_ORDER_TIP}, // SLWW_SORT_BYNAME
11864
86a7f7ee831d (svn r16258) -Codechange: Remove panel with negative height and some small adjustments in the load/save dialogue windows.
alberth <alberth@openttd.org>
parents: 11863
diff changeset
1576 { WWT_PUSHTXTBTN, RESIZE_RIGHT, COLOUR_GREY, 128, 256, 14, 25, STR_SORT_BY_DATE, STR_SORT_ORDER_TIP}, // SLWW_SORT_BYDATE
11862
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1577 { WWT_PANEL, RESIZE_RIGHT, COLOUR_GREY, 0, 256, 26, 47, 0x0, STR_NULL}, // SLWW_BACKGROUND
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1578 { WWT_PANEL, RESIZE_RB, COLOUR_GREY, 0, 256, 48, 167, 0x0, STR_NULL}, // SLWW_FILE_BACKGROUND
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1579 { WWT_PUSHIMGBTN, RESIZE_LR, COLOUR_GREY, 245, 256, 48, 59, SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON}, // SLWW_HOME_BUTTON
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1580 { WWT_INSET, RESIZE_RB, COLOUR_GREY, 2, 243, 50, 150, 0x0, STR_SAVELOAD_LIST_TOOLTIP}, // SLWW_DRIVES_DIRECTORIES_LIST
11864
86a7f7ee831d (svn r16258) -Codechange: Remove panel with negative height and some small adjustments in the load/save dialogue windows.
alberth <alberth@openttd.org>
parents: 11863
diff changeset
1581 { WWT_SCROLLBAR, RESIZE_LRB, COLOUR_GREY, 245, 256, 60, 150, 0x0, STR_TOOLTIP_VSCROLL_BAR_SCROLLS_LIST}, // SLWW_SCROLLBAR
86a7f7ee831d (svn r16258) -Codechange: Remove panel with negative height and some small adjustments in the load/save dialogue windows.
alberth <alberth@openttd.org>
parents: 11863
diff changeset
1582 { WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 0, 0, 0x0, STR_NULL}, // SLWW_CONTENT_DOWNLOAD
11862
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1583 { WWT_EDITBOX, RESIZE_RTB, COLOUR_GREY, 2, 254, 154, 165, STR_SAVE_OSKTITLE, STR_SAVELOAD_EDITBOX_TOOLTIP}, // SLWW_SAVE_OSK_TITLE
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1584 { WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 0, 127, 168, 179, STR_SAVELOAD_DELETE_BUTTON, STR_SAVELOAD_DELETE_TOOLTIP}, // SLWW_DELETE_SELECTION
11864
86a7f7ee831d (svn r16258) -Codechange: Remove panel with negative height and some small adjustments in the load/save dialogue windows.
alberth <alberth@openttd.org>
parents: 11863
diff changeset
1585 { WWT_PUSHTXTBTN, RESIZE_RTB, COLOUR_GREY, 128, 244, 168, 179, STR_SAVELOAD_SAVE_BUTTON, STR_SAVELOAD_SAVE_TOOLTIP}, // SLWW_SAVE_GAME
11862
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1586 { WWT_RESIZEBOX, RESIZE_LRTB, COLOUR_GREY, 245, 256, 168, 179, 0x0, STR_RESIZE_BUTTON}, // SLWW_RESIZE
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1587 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1588 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1589
11865
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1590 static const NWidgetPart _nested_save_dialog_widgets[] = {
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1591 NWidget(NWID_LAYERED),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1592 NWidget(NWID_VERTICAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1593 NWidget(NWID_HORIZONTAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1594 NWidget(WWT_CLOSEBOX, COLOUR_GREY, SLWW_CLOSE),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1595 NWidget(WWT_CAPTION, COLOUR_GREY, SLWW_WINDOWTITLE),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1596 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1597 NWidget(NWID_HORIZONTAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1598 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYNAME), SetMinimalSize(128, 12), SetDataTip(STR_SORT_BY_NAME, STR_SORT_ORDER_TIP),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1599 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYDATE), SetMinimalSize(129, 12), SetDataTip(STR_SORT_BY_DATE, STR_SORT_ORDER_TIP), SetResize(1, 0),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1600 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1601 NWidget(WWT_PANEL, COLOUR_GREY, SLWW_BACKGROUND), SetMinimalSize(257, 22), SetResize(1, 0), EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1602 NWidget(WWT_PANEL, COLOUR_GREY, SLWW_FILE_BACKGROUND),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1603 NWidget(NWID_HORIZONTAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1604 NWidget(WWT_INSET, COLOUR_GREY, SLWW_DRIVES_DIRECTORIES_LIST), SetMinimalSize(242, 101), SetPadding(2, 1, 0, 2),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1605 SetDataTip(0x0, STR_SAVELOAD_LIST_TOOLTIP), SetResize(2, 10), EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1606 NWidget(NWID_VERTICAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1607 NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, SLWW_HOME_BUTTON), SetMinimalSize(12, 12), SetDataTip(SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1608 NWidget(WWT_SCROLLBAR, COLOUR_GREY, SLWW_SCROLLBAR),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1609 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1610 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1611 NWidget(WWT_EDITBOX, COLOUR_GREY, SLWW_SAVE_OSK_TITLE), SetMinimalSize(253, 12), SetPadding(3, 2, 2, 2), SetResize(1, 0),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1612 SetDataTip(STR_SAVE_OSKTITLE, STR_SAVELOAD_EDITBOX_TOOLTIP),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1613 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1614 NWidget(NWID_HORIZONTAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1615 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_DELETE_SELECTION), SetMinimalSize(128, 12),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1616 SetDataTip(STR_SAVELOAD_DELETE_BUTTON, STR_SAVELOAD_DELETE_TOOLTIP),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1617 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SAVE_GAME), SetMinimalSize(117, 12), SetResize(1, 0),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1618 SetDataTip(STR_SAVELOAD_SAVE_BUTTON, STR_SAVELOAD_SAVE_TOOLTIP),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1619 NWidget(WWT_RESIZEBOX, COLOUR_GREY, SLWW_RESIZE),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1620 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1621 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1622 NWidget(NWID_VERTICAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1623 NWidget(NWID_HORIZONTAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1624 NWidget(WWT_EMPTY, COLOUR_GREY, SLWW_CONTENT_DOWNLOAD), SetMinimalSize(1, 1), SetFill(false, false),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1625 NWidget(NWID_SPACER), SetFill(true, false), SetResize(1, 0),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1626 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1627 NWidget(NWID_SPACER), SetFill(true, true), SetResize(1, 1),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1628 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1629 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1630 };
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1631
11085
8da1855e9f14 (svn r15428) -Codechange: consistently use colour instead of having both color and colour.
rubidium <rubidium@openttd.org>
parents: 11081
diff changeset
1632 /* Colours for fios types */
8da1855e9f14 (svn r15428) -Codechange: consistently use colour instead of having both color and colour.
rubidium <rubidium@openttd.org>
parents: 11081
diff changeset
1633 const TextColour _fios_colours[] = {
7824
7ae5bda4e8dd (svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas <belugas@openttd.org>
parents: 7750
diff changeset
1634 TC_LIGHT_BLUE, TC_DARK_GREEN, TC_DARK_GREEN, TC_ORANGE, TC_LIGHT_BROWN,
7ae5bda4e8dd (svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas <belugas@openttd.org>
parents: 7750
diff changeset
1635 TC_ORANGE, TC_LIGHT_BROWN, TC_ORANGE, TC_ORANGE, TC_YELLOW
7ae5bda4e8dd (svn r11374) -Codechange: Give meaning to the magical number that specifies the color of the text in a DrawString call.
belugas <belugas@openttd.org>
parents: 7750
diff changeset
1636 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1637
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
1638 void BuildFileList()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1639 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1640 _fios_path_changed = true;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1641 FiosFreeSavegameList();
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1642
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1643 switch (_saveload_mode) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1644 case SLD_NEW_GAME:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1645 case SLD_LOAD_SCENARIO:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1646 case SLD_SAVE_SCENARIO:
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1647 FiosGetScenarioList(_saveload_mode); break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1648 case SLD_LOAD_HEIGHTMAP:
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1649 FiosGetHeightmapList(_saveload_mode); break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1650
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1651 default: FiosGetSavegameList(_saveload_mode); break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1652 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1653 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1654
11480
88683778e6e5 (svn r15841) -Fix: the saveload window could draw directory partly outside the window
rubidium <rubidium@openttd.org>
parents: 11450
diff changeset
1655 static void DrawFiosTexts(int left, int right)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1656 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1657 static const char *path = NULL;
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1658 static StringID str = STR_ERROR_UNABLE_TO_READ_DRIVE;
10771
44e71a85349d (svn r15104) -Codechange: unify the resolving of the xyz kbytes/megabytes strings.
rubidium <rubidium@openttd.org>
parents: 10642
diff changeset
1659 static uint64 tot = 0;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1660
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1661 if (_fios_path_changed) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1662 str = FiosGetDescText(&path, &tot);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1663 _fios_path_changed = false;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1664 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1665
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1666 if (str != STR_ERROR_UNABLE_TO_READ_DRIVE) SetDParam(0, tot);
11770
534c3c3167f2 (svn r16160) -Codechange: remove the need for explicit TC_FROMSTRING for DrawString.
rubidium <rubidium@openttd.org>
parents: 11766
diff changeset
1667 DrawString(left + 2, right - 2, 37, str);
11480
88683778e6e5 (svn r15841) -Fix: the saveload window could draw directory partly outside the window
rubidium <rubidium@openttd.org>
parents: 11450
diff changeset
1668 DrawString(left + 2, right - 2, 27, path, TC_BLACK);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1669 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1670
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
1671 static void MakeSortedSaveGameList()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1672 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1673 uint sort_start = 0;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1674 uint sort_end = 0;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1675
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1676 /* Directories are always above the files (FIOS_TYPE_DIR)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1677 * Drives (A:\ (windows only) are always under the files (FIOS_TYPE_DRIVE)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1678 * Only sort savegames/scenarios, not directories
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1679 */
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1680 for (const FiosItem *item = _fios_items.Begin(); item != _fios_items.End(); item++) {
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1681 switch (item->type) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1682 case FIOS_TYPE_DIR: sort_start++; break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1683 case FIOS_TYPE_PARENT: sort_start++; break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1684 case FIOS_TYPE_DRIVE: sort_end++; break;
9031
9c6b04429f26 (svn r12848) -Cleanup/Codechange: Use correct variable types, don't prefix with _ for non-globals, and use implicit enum numbering.
peter1138 <peter1138@openttd.org>
parents: 8973
diff changeset
1685 default: break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1686 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1687 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1688
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1689 uint s_amount = _fios_items.Length() - sort_start - sort_end;
8819
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1690 if (s_amount > 0) {
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1691 qsort(_fios_items.Get(sort_start), s_amount, sizeof(FiosItem), compare_FiosItems);
8819
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1692 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1693 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1694
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
1695 extern void StartupEngines();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1696
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1697 struct SaveLoadWindow : public QueryStringBaseWindow {
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1698 private:
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1699 FiosItem o_dir;
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1700 public:
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1701
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1702 void GenerateFileName()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1703 {
10533
53a8506c2079 (svn r14790) -Codechange: unify generation of default savegame/screenshot names (PhilSophus)
rubidium <rubidium@openttd.org>
parents: 10499
diff changeset
1704 GenerateDefaultSaveName(this->edit_str_buf, &this->edit_str_buf[this->edit_str_size - 1]);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1705 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1706
9897
5b558ce6cb0e (svn r14046) -Codechange: make the size of querystring "widgets" more configurable.
rubidium <rubidium@openttd.org>
parents: 9790
diff changeset
1707 SaveLoadWindow(const WindowDesc *desc, SaveLoadDialogMode mode) : QueryStringBaseWindow(64, desc)
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1708 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1709 static const StringID saveload_captions[] = {
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1710 STR_SAVELOAD_LOAD_CAPTION,
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1711 STR_SAVELOAD_LOAD_SCENARIO,
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1712 STR_SAVELOAD_SAVE_CAPTION,
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1713 STR_SAVELOAD_SAVE_SCENARIO,
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1714 STR_LOAD_HEIGHTMAP,
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1715 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1716
11352
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1717 this->vscroll.cap = 10;
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1718 this->resize.step_width = 2;
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1719 this->resize.step_height = 10;
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1720
11702
cdaad565efe5 (svn r16088) -Codechange: merge HighLightStyle and ViewportHighlightMode as they are basically the same thing
rubidium <rubidium@openttd.org>
parents: 11653
diff changeset
1721 SetObjectToPlace(SPR_CURSOR_ZZZ, PAL_NONE, HT_NONE, WC_MAIN_WINDOW, 0);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1722
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1723 /* Use an array to define what will be the current file type being handled
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1724 * by current file mode */
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1725 switch (mode) {
11352
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1726 case SLD_LOAD_GAME:
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1727 this->HideWidget(SLWW_CONTENT_DOWNLOAD);
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1728 this->widget[SLWW_DRIVES_DIRECTORIES_LIST].bottom += this->widget[SLWW_CONTENT_DOWNLOAD].bottom - this->widget[SLWW_CONTENT_DOWNLOAD].top;
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1729 break;
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1730
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1731 case SLD_LOAD_SCENARIO:
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1732 case SLD_LOAD_HEIGHTMAP:
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1733 this->vscroll.cap--;
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1734
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1735 case SLD_SAVE_GAME: this->GenerateFileName(); break;
11644
7980a47b17cb (svn r16024) -Codechange: harden string copying on places where it's possible
rubidium <rubidium@openttd.org>
parents: 11544
diff changeset
1736 case SLD_SAVE_SCENARIO: strecpy(this->edit_str_buf, "UNNAMED", &this->edit_str_buf[edit_str_size - 1]); break;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1737 default: break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1738 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1739
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1740 assert((uint)mode < lengthof(saveload_captions));
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1741
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1742 this->widget[SLWW_WINDOWTITLE].data = saveload_captions[mode];
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1743 this->LowerWidget(SLWW_DRIVES_DIRECTORIES_LIST);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1744
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1745 this->afilter = CS_ALPHANUMERAL;
9897
5b558ce6cb0e (svn r14046) -Codechange: make the size of querystring "widgets" more configurable.
rubidium <rubidium@openttd.org>
parents: 9790
diff changeset
1746 InitializeTextBuffer(&this->text, this->edit_str_buf, this->edit_str_size, 240);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1747
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1748 /* pause is only used in single-player, non-editor mode, non-menu mode. It
9693
cf5a441f1069 (svn r13800) -Codechange: minor comment style fixes in misc_gui.cpp
smatz <smatz@openttd.org>
parents: 9682
diff changeset
1749 * will be unpaused in the WE_DESTROY event handler. */
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1750 if (_game_mode != GM_MENU && !_networking && _game_mode != GM_EDITOR) {
11852
862dd1024fe7 (svn r16242) -Codechange: rework pausing
rubidium <rubidium@openttd.org>
parents: 11837
diff changeset
1751 DoCommandP(0, PM_PAUSED_SAVELOAD, 1, CMD_PAUSE);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1752 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1753
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1754 BuildFileList();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1755
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1756 ResetObjectToPlace();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1757
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1758 o_dir.type = FIOS_TYPE_DIRECT;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1759 switch (_saveload_mode) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1760 case SLD_SAVE_GAME:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1761 case SLD_LOAD_GAME:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1762 FioGetDirectory(o_dir.name, lengthof(o_dir.name), SAVE_DIR);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1763 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1764
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1765 case SLD_SAVE_SCENARIO:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1766 case SLD_LOAD_SCENARIO:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1767 FioGetDirectory(o_dir.name, lengthof(o_dir.name), SCENARIO_DIR);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1768 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1769
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1770 case SLD_LOAD_HEIGHTMAP:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1771 FioGetDirectory(o_dir.name, lengthof(o_dir.name), HEIGHTMAP_DIR);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1772 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1773
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1774 default:
10310
5cefbb1c3fd7 (svn r14555) -Codechange: replace ttd_strlcat and ttd_strlcpy with strecat and strecpy where direct conversion is possible
skidd13 <skidd13@openttd.org>
parents: 10295
diff changeset
1775 strecpy(o_dir.name, _personal_dir, lastof(o_dir.name));
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1776 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1777
11081
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 10960
diff changeset
1778 /* Focus the edit box by default in the save windows */
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 10960
diff changeset
1779 if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) {
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 10960
diff changeset
1780 this->SetFocusedWidget(SLWW_SAVE_OSK_TITLE);
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 10960
diff changeset
1781 }
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 10960
diff changeset
1782
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1783 this->FindWindowPlacementAndResize(desc);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1784 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1785
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1786 virtual ~SaveLoadWindow()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1787 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1788 /* pause is only used in single-player, non-editor mode, non menu mode */
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1789 if (!_networking && _game_mode != GM_EDITOR && _game_mode != GM_MENU) {
11852
862dd1024fe7 (svn r16242) -Codechange: rework pausing
rubidium <rubidium@openttd.org>
parents: 11837
diff changeset
1790 DoCommandP(0, PM_PAUSED_SAVELOAD, 0, CMD_PAUSE);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1791 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1792 FiosFreeSavegameList();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1793 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1794
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1795 virtual void OnPaint()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1796 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1797 int y;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1798
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1799 SetVScrollCount(this, _fios_items.Length());
9273
72a6d2e60834 (svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents: 9272
diff changeset
1800 this->DrawWidgets();
11480
88683778e6e5 (svn r15841) -Fix: the saveload window could draw directory partly outside the window
rubidium <rubidium@openttd.org>
parents: 11450
diff changeset
1801 DrawFiosTexts(this->widget[SLWW_BACKGROUND].left, this->widget[SLWW_BACKGROUND].right);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1802
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1803 if (_savegame_sort_dirty) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1804 _savegame_sort_dirty = false;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1805 MakeSortedSaveGameList();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1806 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1807
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1808 const Widget *widg = &this->widget[SLWW_DRIVES_DIRECTORIES_LIST];
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1809 GfxFillRect(widg->left + 1, widg->top + 1, widg->right, widg->bottom, 0xD7);
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1810 this->DrawSortButtonState(_savegame_sort_order & SORT_BY_NAME ? SLWW_SORT_BYNAME : SLWW_SORT_BYDATE, _savegame_sort_order & SORT_DESCENDING ? SBS_DOWN : SBS_UP);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1811
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1812 y = widg->top + 1;
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1813 for (uint pos = this->vscroll.pos; pos < _fios_items.Length(); pos++) {
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1814 const FiosItem *item = _fios_items.Get(pos);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1815
11544
b82c75ea2fc4 (svn r15907) -Fix (r15841): some strings in save/load dialog were drawn with a 2 pixel offset
glx <glx@openttd.org>
parents: 11524
diff changeset
1816 DrawString(widg->left + 2, widg->right - 2, y, item->title, _fios_colours[item->type]);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1817 y += 10;
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1818 if (y >= this->vscroll.cap * 10 + widg->top + 1) break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1819 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1820
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1821 if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) {
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1822 this->DrawEditBox(SLWW_SAVE_OSK_TITLE);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1823 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1824 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1825
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1826 virtual void OnClick(Point pt, int widget)
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1827 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1828 switch (widget) {
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1829 case SLWW_SORT_BYNAME: // Sort save names by name
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1830 _savegame_sort_order = (_savegame_sort_order == SORT_BY_NAME) ?
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1831 SORT_BY_NAME | SORT_DESCENDING : SORT_BY_NAME;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1832 _savegame_sort_dirty = true;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1833 this->SetDirty();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1834 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1835
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1836 case SLWW_SORT_BYDATE: // Sort save names by date
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1837 _savegame_sort_order = (_savegame_sort_order == SORT_BY_DATE) ?
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1838 SORT_BY_DATE | SORT_DESCENDING : SORT_BY_DATE;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1839 _savegame_sort_dirty = true;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1840 this->SetDirty();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1841 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1842
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1843 case SLWW_HOME_BUTTON: // OpenTTD 'button', jumps to OpenTTD directory
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1844 FiosBrowseTo(&o_dir);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1845 this->SetDirty();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1846 BuildFileList();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1847 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1848
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1849 case SLWW_DRIVES_DIRECTORIES_LIST: { // Click the listbox
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1850 int y = (pt.y - this->widget[widget].top - 1) / 10;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1851
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1852 if (y < 0 || (y += this->vscroll.pos) >= this->vscroll.count) return;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1853
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1854 const FiosItem *file = _fios_items.Get(y);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1855
11256
f63c1d69ed92 (svn r15605) -Codechange: constify a function
rubidium <rubidium@openttd.org>
parents: 11230
diff changeset
1856 const char *name = FiosBrowseTo(file);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1857 if (name != NULL) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1858 if (_saveload_mode == SLD_LOAD_GAME || _saveload_mode == SLD_LOAD_SCENARIO) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1859 _switch_mode = (_game_mode == GM_EDITOR) ? SM_LOAD_SCENARIO : SM_LOAD;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1860
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1861 SetFiosType(file->type);
10310
5cefbb1c3fd7 (svn r14555) -Codechange: replace ttd_strlcat and ttd_strlcpy with strecat and strecpy where direct conversion is possible
skidd13 <skidd13@openttd.org>
parents: 10295
diff changeset
1862 strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name));
5cefbb1c3fd7 (svn r14555) -Codechange: replace ttd_strlcat and ttd_strlcpy with strecat and strecpy where direct conversion is possible
skidd13 <skidd13@openttd.org>
parents: 10295
diff changeset
1863 strecpy(_file_to_saveload.title, file->title, lastof(_file_to_saveload.title));
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1864
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1865 delete this;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1866 } else if (_saveload_mode == SLD_LOAD_HEIGHTMAP) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1867 SetFiosType(file->type);
10310
5cefbb1c3fd7 (svn r14555) -Codechange: replace ttd_strlcat and ttd_strlcpy with strecat and strecpy where direct conversion is possible
skidd13 <skidd13@openttd.org>
parents: 10295
diff changeset
1868 strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name));
5cefbb1c3fd7 (svn r14555) -Codechange: replace ttd_strlcat and ttd_strlcpy with strecat and strecpy where direct conversion is possible
skidd13 <skidd13@openttd.org>
parents: 10295
diff changeset
1869 strecpy(_file_to_saveload.title, file->title, lastof(_file_to_saveload.title));
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1870
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1871 delete this;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1872 ShowHeightmapLoad();
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1873 } else {
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1874 /* SLD_SAVE_GAME, SLD_SAVE_SCENARIO copy clicked name to editbox */
10276
a5286e772120 (svn r14514) -Codechange: use 'size' instead of 'length' for querystring and textbuf, explicitly say it includes the terminating zero
smatz <smatz@openttd.org>
parents: 10208
diff changeset
1875 ttd_strlcpy(this->text.buf, file->title, this->text.maxsize);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1876 UpdateTextBufferSize(&this->text);
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1877 this->InvalidateWidget(SLWW_SAVE_OSK_TITLE);
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1878 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1879 } else {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1880 /* Changed directory, need repaint. */
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1881 this->SetDirty();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1882 BuildFileList();
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1883 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1884 break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1885 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1886
11352
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1887 case SLWW_CONTENT_DOWNLOAD:
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1888 if (!_network_available) {
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1889 ShowErrorMessage(INVALID_STRING_ID, STR_NETWORK_ERR_NOTAVAILABLE, 0, 0);
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1890 } else {
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1891 #if defined(ENABLE_NETWORK)
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1892 switch (_saveload_mode) {
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1893 default: NOT_REACHED();
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1894 case SLD_LOAD_SCENARIO: ShowNetworkContentListWindow(NULL, CONTENT_TYPE_SCENARIO); break;
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1895 case SLD_LOAD_HEIGHTMAP: ShowNetworkContentListWindow(NULL, CONTENT_TYPE_HEIGHTMAP); break;
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1896 }
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1897 #endif
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1898 }
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1899 break;
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1900
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1901 case SLWW_DELETE_SELECTION: case SLWW_SAVE_GAME: // Delete, Save game
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1902 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1903 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1904 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1905
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1906 virtual void OnMouseLoop()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1907 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1908 if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) {
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1909 this->HandleEditBox(SLWW_SAVE_OSK_TITLE);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1910 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1911 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1912
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9273
diff changeset
1913 virtual EventState OnKeyPress(uint16 key, uint16 keycode)
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1914 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1915 if (keycode == WKC_ESC) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1916 delete this;
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9273
diff changeset
1917 return ES_HANDLED;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1918 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1919
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9273
diff changeset
1920 EventState state = ES_NOT_HANDLED;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1921 if ((_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) &&
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1922 this->HandleEditBoxKey(SLWW_SAVE_OSK_TITLE, key, keycode, state) == HEBR_CONFIRM) {
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1923 this->HandleButtonClick(SLWW_SAVE_GAME);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1924 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1925
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9273
diff changeset
1926 return state;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1927 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1928
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1929 virtual void OnTimeout()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1930 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1931 /* This test protects against using widgets 11 and 12 which are only available
9693
cf5a441f1069 (svn r13800) -Codechange: minor comment style fixes in misc_gui.cpp
smatz <smatz@openttd.org>
parents: 9682
diff changeset
1932 * in those two saveload mode */
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1933 if (!(_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO)) return;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1934
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1935 if (this->IsWidgetLowered(SLWW_DELETE_SELECTION)) { // Delete button clicked
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1936 if (!FiosDelete(this->text.buf)) {
11730
a39da1e4c1f5 (svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents: 11702
diff changeset
1937 ShowErrorMessage(INVALID_STRING_ID, STR_ERROR_UNABLE_TO_DELETE_FILE, 0, 0);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1938 } else {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1939 BuildFileList();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1940 /* Reset file name to current date on successful delete */
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1941 if (_saveload_mode == SLD_SAVE_GAME) GenerateFileName();
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1942 }
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1943
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1944 UpdateTextBufferSize(&this->text);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1945 this->SetDirty();
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1946 } else if (this->IsWidgetLowered(SLWW_SAVE_GAME)) { // Save button clicked
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1947 _switch_mode = SM_SAVE;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1948 FiosMakeSavegameName(_file_to_saveload.name, this->text.buf, sizeof(_file_to_saveload.name));
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1949
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1950 /* In the editor set up the vehicle engines correctly (date might have changed) */
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1951 if (_game_mode == GM_EDITOR) StartupEngines();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1952 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1953 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1954
11524
420a4f0b4e0b (svn r15885) -Codechange: Removed new_size parameter of Window::OnResize() callback
alberth <alberth@openttd.org>
parents: 11482
diff changeset
1955 virtual void OnResize(Point delta)
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1956 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1957 /* Widget 2 and 3 have to go with halve speed, make it so obiwan */
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1958 uint diff = delta.x / 2;
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1959 this->widget[SLWW_SORT_BYNAME].right += diff;
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1960 this->widget[SLWW_SORT_BYDATE].left += diff;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1961
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1962 /* Same for widget 11 and 12 in save-dialog */
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1963 if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) {
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1964 this->widget[SLWW_DELETE_SELECTION].right += diff;
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1965 this->widget[SLWW_SAVE_GAME].left += diff;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1966 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1967
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1968 this->vscroll.cap += delta.y / 10;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1969 }
11352
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1970
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1971 virtual void OnInvalidateData(int data)
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1972 {
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1973 BuildFileList();
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1974 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1975 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1976
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11369
diff changeset
1977 static const WindowDesc _load_dialog_desc(
7346
4772500cfc44 (svn r10709) -Codechange: allow automatic downsizing of the load game/save game windows. These windows also already supported downsizing, but again the resize button would be unreachable.
rubidium <rubidium@openttd.org>
parents: 7341
diff changeset
1978 WDP_CENTER, WDP_CENTER, 257, 154, 257, 294,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5750
diff changeset
1979 WC_SAVELOAD, WC_NONE,
8019
9e262ce81acf (svn r11579) -Revert(r11578): some cases of key propagation are not handled correctly.
belugas <belugas@openttd.org>
parents: 8018
diff changeset
1980 WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE,
11865
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1981 _load_dialog_widgets, _nested_load_dialog_widgets, lengthof(_nested_load_dialog_widgets)
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11369
diff changeset
1982 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1983
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11369
diff changeset
1984 static const WindowDesc _save_dialog_desc(
7346
4772500cfc44 (svn r10709) -Codechange: allow automatic downsizing of the load game/save game windows. These windows also already supported downsizing, but again the resize button would be unreachable.
rubidium <rubidium@openttd.org>
parents: 7341
diff changeset
1985 WDP_CENTER, WDP_CENTER, 257, 180, 257, 320,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5750
diff changeset
1986 WC_SAVELOAD, WC_NONE,
8019
9e262ce81acf (svn r11579) -Revert(r11578): some cases of key propagation are not handled correctly.
belugas <belugas@openttd.org>
parents: 8018
diff changeset
1987 WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE,
11865
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1988 _save_dialog_widgets, _nested_save_dialog_widgets, lengthof(_nested_save_dialog_widgets)
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11369
diff changeset
1989 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1990
8152
32bfb56e7e0e (svn r11714) -Fix[FS#1569]: Do not allow player inauguration date on scenarios to be bigger than current year.
belugas <belugas@openttd.org>
parents: 8149
diff changeset
1991 /** These values are used to convert the file/operations mode into a corresponding file type.
32bfb56e7e0e (svn r11714) -Fix[FS#1569]: Do not allow player inauguration date on scenarios to be bigger than current year.
belugas <belugas@openttd.org>
parents: 8149
diff changeset
1992 * So each entry, as expressed by the related comment, is based on the enum */
32bfb56e7e0e (svn r11714) -Fix[FS#1569]: Do not allow player inauguration date on scenarios to be bigger than current year.
belugas <belugas@openttd.org>
parents: 8149
diff changeset
1993 static const FileType _file_modetotype[] = {
32bfb56e7e0e (svn r11714) -Fix[FS#1569]: Do not allow player inauguration date on scenarios to be bigger than current year.
belugas <belugas@openttd.org>
parents: 8149
diff changeset
1994 FT_SAVEGAME, ///< used for SLD_LOAD_GAME
32bfb56e7e0e (svn r11714) -Fix[FS#1569]: Do not allow player inauguration date on scenarios to be bigger than current year.
belugas <belugas@openttd.org>
parents: 8149
diff changeset
1995 FT_SCENARIO, ///< used for SLD_LOAD_SCENARIO
32bfb56e7e0e (svn r11714) -Fix[FS#1569]: Do not allow player inauguration date on scenarios to be bigger than current year.
belugas <belugas@openttd.org>
parents: 8149
diff changeset
1996 FT_SAVEGAME, ///< used for SLD_SAVE_GAME
32bfb56e7e0e (svn r11714) -Fix[FS#1569]: Do not allow player inauguration date on scenarios to be bigger than current year.
belugas <belugas@openttd.org>
parents: 8149
diff changeset
1997 FT_SCENARIO, ///< used for SLD_SAVE_SCENARIO
32bfb56e7e0e (svn r11714) -Fix[FS#1569]: Do not allow player inauguration date on scenarios to be bigger than current year.
belugas <belugas@openttd.org>
parents: 8149
diff changeset
1998 FT_HEIGHTMAP, ///< used for SLD_LOAD_HEIGHTMAP
32bfb56e7e0e (svn r11714) -Fix[FS#1569]: Do not allow player inauguration date on scenarios to be bigger than current year.
belugas <belugas@openttd.org>
parents: 8149
diff changeset
1999 FT_SAVEGAME, ///< SLD_NEW_GAME
32bfb56e7e0e (svn r11714) -Fix[FS#1569]: Do not allow player inauguration date on scenarios to be bigger than current year.
belugas <belugas@openttd.org>
parents: 8149
diff changeset
2000 };
32bfb56e7e0e (svn r11714) -Fix[FS#1569]: Do not allow player inauguration date on scenarios to be bigger than current year.
belugas <belugas@openttd.org>
parents: 8149
diff changeset
2001
8149
ad7ddb6150dc (svn r11711) -Codechange: Name the Save Load Dialog Mode enum
belugas <belugas@openttd.org>
parents: 8144
diff changeset
2002 void ShowSaveLoadDialog(SaveLoadDialogMode mode)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2003 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2004 DeleteWindowById(WC_SAVELOAD, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2005
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2006 const WindowDesc *sld;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2007 switch (mode) {
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2008 case SLD_SAVE_GAME:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2009 case SLD_SAVE_SCENARIO:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2010 sld = &_save_dialog_desc; break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2011 default:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2012 sld = &_load_dialog_desc; break;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2013 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2014
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2015 _saveload_mode = mode;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2016 _file_to_saveload.filetype = _file_modetotype[mode];
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2017
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2018 new SaveLoadWindow(sld, mode);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2019 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2020
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
2021 void RedrawAutosave()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2022 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2023 SetWindowDirty(FindWindowById(WC_STATUS_BAR, 0));
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2024 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2025
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2026 void SetFiosType(const byte fiostype)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2027 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2028 switch (fiostype) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2029 case FIOS_TYPE_FILE:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2030 case FIOS_TYPE_SCENARIO:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2031 _file_to_saveload.mode = SL_LOAD;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2032 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2033
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2034 case FIOS_TYPE_OLDFILE:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2035 case FIOS_TYPE_OLD_SCENARIO:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2036 _file_to_saveload.mode = SL_OLD_LOAD;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2037 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2038
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2039 #ifdef WITH_PNG
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2040 case FIOS_TYPE_PNG:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2041 _file_to_saveload.mode = SL_PNG;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2042 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2043 #endif /* WITH_PNG */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2044
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2045 case FIOS_TYPE_BMP:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2046 _file_to_saveload.mode = SL_BMP;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2047 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2048
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2049 default:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2050 _file_to_saveload.mode = SL_INVALID;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2051 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2052 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2053 }