annotate src/misc_gui.cpp @ 12778:bc7926153e19 draft

(svn r17248) -Fix: add GPL license notice where appropriate
author rubidium <rubidium@openttd.org>
date Fri, 21 Aug 2009 20:21:05 +0000
parents 5732e685a232
children dd7db20331f6
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
12778
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12777
diff changeset
3 /*
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12777
diff changeset
4 * This file is part of OpenTTD.
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12777
diff changeset
5 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12777
diff changeset
6 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12777
diff changeset
7 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12777
diff changeset
8 */
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12777
diff changeset
9
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
10 /** @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
11
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 "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
13 #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
14 #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
15 #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
16 #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
17 #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
18 #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
19 #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
20 #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
21 #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
22 #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
23 #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
24 #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
25 #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
26 #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
27 #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
28 #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
29 #include "variables.h"
10960
a4e5b5d2837c (svn r15299) -Cleanup: remove many redundant includes
smatz <smatz@openttd.org>
parents: 10944
diff changeset
30 #include "company_base.h"
a4e5b5d2837c (svn r15299) -Cleanup: remove many redundant includes
smatz <smatz@openttd.org>
parents: 10944
diff changeset
31 #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
32 #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
33 #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
34 #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
35 #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
36 #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
37 #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
38 #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
39 #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
40 #include "newgrf_cargo.h"
9127
428852b86d4d (svn r12987) -Codechange: split viewport and tile selection.
rubidium <rubidium@openttd.org>
parents: 9116
diff changeset
41 #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
42 #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
43
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
44 #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
45
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 /* 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
47 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
48
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
49
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
50 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
51 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
52 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
53
11429
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
54 /** 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
55 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
56 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
57 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
58 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
59 };
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
60
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
61 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
62 { 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
63 { 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
64 { 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
65 { 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
66 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
67
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
68 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
69 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
70 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
71 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
72 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
73 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
74 };
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
75
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
76 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
77 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
78 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
79 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
80 _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
81 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
82
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
83 class LandInfoWindow : public Window {
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
84 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
85 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
86 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
87 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
88
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
89 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
90 };
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
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
92 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
93 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
94
9170
8c020e980b8c (svn r13033) -Fix [FS#2003](r13029): land info tool wasn't working
smatz <smatz@openttd.org>
parents: 9166
diff changeset
95 virtual void OnPaint()
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
96 {
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
97 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
98
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
99 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
100 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
101 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
102
11429
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
103 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
104 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
105 }
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
106
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
107 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
108 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
109 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
110 }
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 }
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
112
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
113 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
114 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
115
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
116 /* 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
117 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
118
9713
c94f47f48e76 (svn r13826) -Codechange: use 'INVALID_DATE' instead of '0' as placeholder in tile description
smatz <smatz@openttd.org>
parents: 9693
diff changeset
119 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
120
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 /* 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
122 * - 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
123 * - 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
124 */
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
125 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
126 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
127 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
128 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
129 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
130 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
131 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
132 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
133
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
134 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
135 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
136
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
137 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
138
12261
c42d8d239142 (svn r16676) -Codechange: Rename AcceptedCargo to CargoArray and its instances to more meaningful names.
frosch <frosch@openttd.org>
parents: 12244
diff changeset
139 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
140 AddAcceptedCargo(tile, acceptance);
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
141 GetTileDesc(tile, &td);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
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 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
144
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 /* Tiletype */
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
146 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
147 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
148 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
149
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
150 /* 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
151 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
152 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
153
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 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
155 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
156 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
157 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
158 }
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
159
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
160 /* 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
161 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
162 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
163 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
164 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
165 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
166 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
167 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
168 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
169 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
170 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
171 cost = -cost; // Negate negative cost to a positive revenue
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
172 str = STR_LAND_AREA_INFORMATION_REVENUE_WHEN_CLEARED;
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
173 } 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
174 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
175 }
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
176 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
177 }
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
178 }
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
179 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
180 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
181
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 /* 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
183 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
184 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
185 SetDParam(0, TileX(tile));
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
186 SetDParam(1, TileY(tile));
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
187 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
188 SetDParamStr(3, tmp);
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
189 GetString(this->landinfo_data[line_nr], STR_LAND_AREA_INFORMATION_LANDINFO_COORDS, 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
190 line_nr++;
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
191
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 /* 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
193 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
194 if (t != NULL) {
12452
499dee1c27b6 (svn r16886) -Codechange: unify naming of some string IDs related to string codes and group them logically
rubidium <rubidium@openttd.org>
parents: 12415
diff changeset
195 SetDParam(0, STR_TOWN_NAME);
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
196 SetDParam(1, t->index);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
197 }
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
198 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
199 line_nr++;
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
200
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
201 /* 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
202 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
203 SetDParam(0, td.build_date);
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
204 GetString(this->landinfo_data[line_nr], STR_LAND_AREA_INFORMATION_BUILD_DATE, 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
205 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
206 }
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
207
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
208 /* 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
209 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
210 SetDParam(0, td.station_class);
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
211 GetString(this->landinfo_data[line_nr], STR_LAND_AREA_INFORMATION_STATION_CLASS, lastof(this->landinfo_data[line_nr]));
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
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 /* 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
216 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
217 SetDParam(0, td.station_name);
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
218 GetString(this->landinfo_data[line_nr], STR_LAND_AREA_INFORMATION_STATION_TYPE, lastof(this->landinfo_data[line_nr]));
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
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 /* 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
223 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
224 SetDParamStr(0, td.grf);
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
225 GetString(this->landinfo_data[line_nr], STR_LAND_AREA_INFORMATION_NEWGRF_NAME, lastof(this->landinfo_data[line_nr]));
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
226 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
227 }
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
228
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
229 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
230
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
231 /* 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
232 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
233
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
234 /* 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
235 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
236 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
237
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
238 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
239 if (acceptance[i] > 0) {
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
240 /* 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
241 if (found) {
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
242 *strp++ = ',';
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
243 *strp++ = ' ';
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
244 }
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
245 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
246
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
247 /* 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
248 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
249 SetDParam(0, acceptance[i]);
12415
6a77d1df56e2 (svn r16849) -Codechange: replace GetCargo() by CargoSpec::Get()
smatz <smatz@openttd.org>
parents: 12365
diff changeset
250 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
251 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
252 } else {
12415
6a77d1df56e2 (svn r16849) -Codechange: replace GetCargo() by CargoSpec::Get()
smatz <smatz@openttd.org>
parents: 12365
diff changeset
253 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
254 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
255 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
256 }
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
257 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
258
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
259 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
260
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
261 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
262
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
263 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
264
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
265 #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
266 # 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
267 #else
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
268 # 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
269 #endif
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
270 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
271 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
272 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
273 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
274 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
275 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
276 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
277 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
278 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
279 #undef LANDINFOD_LEVEL
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
280 }
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
281 };
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
282
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
283 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
284 {
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
285 DeleteWindowById(WC_LAND_INFO, 0);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
286 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
287 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
288
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
289 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
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 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
292 ResetObjectToPlace();
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
293 } else {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
294 _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
295 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
296 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
297 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
298
11429
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
299 /** 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
300 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
301 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
302 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
303 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
304 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
305 };
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
306
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
307 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
308 { 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
309 { 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
310 { 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
311 { 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
312 { 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
313 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
314
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
315 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
316 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
317 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
318 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
319 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
320 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
321 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
322 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
323 };
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
324
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
325 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
326 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
327 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
328 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
329 _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
330 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
331
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
332 struct AboutWindow : public Window {
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
333 int scroll_height;
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
334 uint16 counter;
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 AboutWindow() : Window(&_about_desc)
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 this->counter = 5;
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
339 this->scroll_height = this->height - 40;
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
340 this->FindWindowPlacementAndResize(&_about_desc);
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
341 }
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
342
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
343 virtual void OnPaint()
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
344 {
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
345 static const char *credits[] = {
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
346 /*************************************************************************
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
347 * 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
348 "Original design by Chris Sawyer",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
349 "Original graphics by Simon Foster",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
350 "",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
351 "The OpenTTD team (in alphabetical order):",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
352 " 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
353 " 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
354 " Matthijs Kooijman (blathijs) - Pathfinder-guru, pool rework",
9944
08df045bf757 (svn r14099) -Codechange: Welcome back, Celestar.
belugas <belugas@openttd.org>
parents: 9916
diff changeset
355 " Victor Fischer (Celestar) - Programming everywhere you need him to",
08df045bf757 (svn r14099) -Codechange: Welcome back, Celestar.
belugas <belugas@openttd.org>
parents: 9916
diff changeset
356 " 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
357 " Lo\xC3\xAF""c Guilloux (glx) - Windows Expert",
11369
41fcb66a1256 (svn r15719) -Update: the credit section.
yexo <yexo@openttd.org>
parents: 11352
diff changeset
358 " 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
359 " 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
360 " 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
361 " 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
362 " Zdenek Sojka (SmatZ) - Bug finder and fixer",
11369
41fcb66a1256 (svn r15719) -Update: the credit section.
yexo <yexo@openttd.org>
parents: 11352
diff changeset
363 " Thijs Marinussen (Yexo) - AI Framework",
9227
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 "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
366 " 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
367 " Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;)",
41fcb66a1256 (svn r15719) -Update: the credit section.
yexo <yexo@openttd.org>
parents: 11352
diff changeset
368 " Jonathan Coome (Maedhros) - High priest of the NewGRF Temple",
12744
354ab0f30d7b (svn r17210) -Update: credits to reflect the (current) truth a bit better
rubidium <rubidium@openttd.org>
parents: 12632
diff changeset
369 " Attila B\xC3\xA1n (MiHaMiX) - Developer WebTranslator 1 and 2",
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
370 " Christoph Mallon (Tron) - Programmer, code correctness police",
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 "Retired Developers:",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
373 " 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
374 " 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
375 " 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
376 " Benedikt Brüggemeier (skidd13) - Bug fixer and code reworker",
12744
354ab0f30d7b (svn r17210) -Update: credits to reflect the (current) truth a bit better
rubidium <rubidium@openttd.org>
parents: 12632
diff changeset
377 " Patric Stout (TrueLight) - Programmer (0.3 - pre0.7), sys op (active)",
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
378 "",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
379 "Special thanks go out to:",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
380 " 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
381 " 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
382 " Petr Baudis (pasky) - Many patches, newGRF support",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
383 " 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
384 " 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
385 " Cian Duffy (MYOB) - BeOS port / manual writing",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
386 " Christian Rosentreter (tokai) - MorphOS / AmigaOS port",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
387 " 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
388 "",
11225
b99d60de9a5d (svn r15578) -Change: unexternalise squirrel.
rubidium <rubidium@openttd.org>
parents: 11090
diff changeset
389 " Alberto Demichelis - Squirrel scripting language © 2003-2008",
12750
3fc80275b774 (svn r17216) -Update: MiniLZO from 1.08 to 2.03.
rubidium <rubidium@openttd.org>
parents: 12744
diff changeset
390 " Markus F.X.J. Oberhumer - (Mini)LZO for loading old savegames © 1996-2008",
12777
5732e685a232 (svn r17247) -Change: move '3rd party' MD5 implementation also to the 3rdparty directory.
rubidium <rubidium@openttd.org>
parents: 12750
diff changeset
391 " L. Peter Deutsch - MD5 implementation © 1999, 2000, 2002",
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
392 " Michael Blunck - Pre-Signals and Semaphores © 2003",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
393 " George - Canal/Lock graphics © 2003-2004",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
394 " David Dallaston - Tram tracks",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
395 " Marcin Grzegorczyk - Foundations for Tracks on Slopes",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
396 " 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
397 " 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
398 "",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
399 "",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
400 "And last but not least:",
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
401 " Chris Sawyer - For an amazing game!"
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
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
404 this->DrawWidgets();
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
405
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
406 /* 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
407 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
408 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
409
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
410 int y = this->scroll_height;
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
411
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
412 /* Show all scrolling credits */
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
413 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
414 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
415 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
416 }
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
417 y += 10;
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
418 }
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 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
421 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
422
11429
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
423 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
424 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
425 }
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
426
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
427 virtual void OnTick()
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
428 {
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
429 if (--this->counter == 0) {
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
430 this->counter = 5;
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
431 this->scroll_height--;
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
432 this->SetDirty();
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
433 }
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
434 }
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
435 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
436
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
437 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
438 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
439 DeleteWindowById(WC_GAME_OPTIONS, 0);
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
440 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
441 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
442
11793
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
443 /** 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
444 enum ErrorMessageWidgets {
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
445 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
446 EMW_CAPTION,
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
447 EMW_PANEL,
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
448 EMW_FACE,
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
449 EMW_MESSAGE,
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
450 };
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
451
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
452 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
453 { 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
454 { 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
455 { 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
456 { 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
457 { 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
458 { 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
459 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
460
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
461 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
462 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
463 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
464 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
465 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
466 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
467 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
468 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
469 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
470 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
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 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
473 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
474 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
475 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
476 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
477 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
478 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
479 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
480 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
481 };
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
482
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
483 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
484 { 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
485 { 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
486 { 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
487 { 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
488 { 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
489 { 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
490 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
491
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
492 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
493 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
494 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
495 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
496 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
497 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
498 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
499 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
500 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
501 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
502 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
503 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
504 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
505 };
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
506
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
507 struct ErrmsgWindow : public Window {
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
508 private:
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
509 uint duration;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
510 uint64 decode_params[20];
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
511 StringID message_1;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
512 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
513 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
514
11445
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
515 int y[4];
9682
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
516
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
517 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
518 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
519 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
520 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
521 {
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
522 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
523 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
524 this->message_1 = msg1;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
525 this->message_2 = msg2;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
526 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
527
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
528 SwitchToErrorRefStack();
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
529 RewindTextRefStack();
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
530
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
531 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
532
11793
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
533 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
534 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
535 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
536
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
537 SwitchToNormalRefStack();
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
538
11445
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
539 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
540 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
541
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
542 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
543 y[2] = 14 + 1;
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
544 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
545 } else {
11445
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
546 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
547 y[1] = height - 1;
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
548 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
549 y[2] = 14 + 1;
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
550 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
551 }
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
552
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
553 this->FindWindowPlacementAndResize(width, height);
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
554 }
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
555
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
556 virtual void OnPaint()
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
557 {
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
558 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
559 this->DrawWidgets();
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
560 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
561
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
562 /* 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
563 * 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
564 */
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
565 SwitchToErrorRefStack();
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
566 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
567
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
568 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
569 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
570 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
571 }
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
572
11793
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
573 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
574 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
575
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
576 /* 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
577 SwitchToNormalRefStack();
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
578 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
579
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
580 virtual void OnMouseLoop()
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
581 {
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
582 /* 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
583 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
584 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
585
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
586 virtual void OnHundredthTick()
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
587 {
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
588 /* 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
589 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
590 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
591 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
592 }
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
593 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
594
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
595 ~ErrmsgWindow()
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
596 {
10816
35b3e8e25590 (svn r15151) -Fix: tile 0 can now be highlighted as error tile
Yexo <Yexo@openttd.org>
parents: 10771
diff changeset
597 SetRedErrorSquare(INVALID_TILE);
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
598 extern StringID _switch_mode_errorstr;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
599 _switch_mode_errorstr = INVALID_STRING_ID;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
600 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
601
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
602 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
603 {
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
604 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
605 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
606 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
607 }
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
608 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
609
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
610 /**
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
611 * 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
612 * @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
613 * @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
614 * @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
615 * @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
616 * @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
617 */
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
618 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
619 {
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
620 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
621 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
622
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
623 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
624
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
625 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
626
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
627 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
628
8819
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
629 Point pt;
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
630 const ViewPort *vp;
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
631
11792
27fee64a19f0 (svn r16182) -Fix: hardcoded (old sized) MAX_COMPANIES constant
rubidium <rubidium@openttd.org>
parents: 11770
diff changeset
632 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
633 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
634 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
635 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
636
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
637 /* 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
638 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
639 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
640
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
641 /* 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
642 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
643 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
644
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
645 } else {
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.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
647 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
648 }
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
649
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
650 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
651 _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
652 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
653 } else {
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
654 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
655 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
656 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
657 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
658 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
659 } else {
9693
cf5a441f1069 (svn r13800) -Codechange: minor comment style fixes in misc_gui.cpp
smatz <smatz@openttd.org>
parents: 9682
diff changeset
660 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
661 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
662 }
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
663
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
664 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
665 _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
666 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
667 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
668 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
669
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
670 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
671 {
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
672 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
673
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
674 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
675 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
676 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
677 }
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
678 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
679 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
680 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
681
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
682 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
683 {
10642
29bc871ff8d1 (svn r14944) -Cleanup: add spaces around some operators
rubidium <rubidium@openttd.org>
parents: 10582
diff changeset
684 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
685 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
686
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
687 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
688 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
689 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
690 }
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
691 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
692 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
693 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
694
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
695 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
696 {
10642
29bc871ff8d1 (svn r14944) -Cleanup: add spaces around some operators
rubidium <rubidium@openttd.org>
parents: 10582
diff changeset
697 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
698
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
699 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
700 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
701 }
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
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
703 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
704 {
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 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
706
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
707 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
708
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
709 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
710 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
711 }
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
712
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
713 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
714 {
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
715 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
716
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
717 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
718 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
719 }
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
720
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
721 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
722 {
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
723 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
724
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
725 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
726 *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
727 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
728
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
729 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
730 { 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
731 { 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
732 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
733
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
734 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
735 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
736 };
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
737
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
738 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
739 {
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
740 StringID string_id;
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
741 byte paramcount;
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
742 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
743 bool use_left_mouse_button;
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
744
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
745 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
746 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
747 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
748 {
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
749 this->string_id = str;
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
750 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
751 assert(paramcount <= lengthof(this->params));
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
752 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
753 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
754 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
755
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
756 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
757 this->widget[0].right = width;
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
758 this->widget[0].bottom = height;
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
759
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
760 FindWindowPlacementAndResize(width, height);
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
761 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
762
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
763 virtual void OnPaint()
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
764 {
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
765 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
766 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
767
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
768 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
769 SetDParam(arg, this->params[arg]);
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
770 }
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
771 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
772 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
773
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
774 virtual void OnMouseLoop()
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
775 {
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
776 /* 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
777 * 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
778 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
779 }
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
780 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
781
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
782 /** Shows a tooltip
6481
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
783 * @param str String to be displayed
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
784 * @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
785 * @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
786 * @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
787 */
5ab8b1b156bb (svn r13922) -Codechange: Move measurement-tooltip related stuff out of the general tooltip window.
frosch <frosch@openttd.org>
parents: 9752
diff changeset
788 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
789 {
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
790 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
791
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 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
793
9781
5ab8b1b156bb (svn r13922) -Codechange: Move measurement-tooltip related stuff out of the general tooltip window.
frosch <frosch@openttd.org>
parents: 9752
diff changeset
794 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
795
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
796 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
797 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
798 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
799
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
800 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
801 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
802
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
803 /* 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
804 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
805 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
806 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
807 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
808
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
809 /* 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
810 * 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
811 * 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
812 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
813 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
814 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
815
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
816 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
817 _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
818 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
819 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
820
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
821
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
822 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
823 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
824 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
825 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
826
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
827 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
828 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
829
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
830 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
831 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
832 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
833 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
834 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
835 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
836 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
837 }
12261
c42d8d239142 (svn r16676) -Codechange: Rename AcceptedCargo to CargoArray and its instances to more meaningful names.
frosch <frosch@openttd.org>
parents: 12244
diff changeset
838 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
839 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
840 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
841 } else {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
842 /* 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
843 *b++ = ',';
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++ = ' ';
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
845 }
12415
6a77d1df56e2 (svn r16849) -Codechange: replace GetCargo() by CargoSpec::Get()
smatz <smatz@openttd.org>
parents: 12365
diff changeset
846 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
847 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
848 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
849
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
850 /* 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
851 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
852
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
853 *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
854
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
855 /* 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
856 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
857
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
858 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
859 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
860 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
861
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
862 /**
838e1d6a0321 (svn r12596) -Feature: show what cargos a station could be supplied with. Patch by Roujin.
rubidium <rubidium@openttd.org>
parents: 8831
diff changeset
863 * 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
864 * @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
865 * @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
866 * @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
867 * @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
868 * @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
869 * @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
870 * @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
871 */
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
872 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
873 {
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 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
875 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
876 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
877 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
878 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
879 } 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
880 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
881 }
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
882 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
883 }
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
884
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
885 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
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
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
888 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
889 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
890 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
891 _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
892 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
893 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
894 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
895
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
896 /* 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
897 * 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
898 * 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
899 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
900 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
901 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
902 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
903
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
904 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
905
9390
45c874394355 (svn r13301) -Fix [FS#1997]: resolve more MSVC 9 x64 warnings.
rubidium <rubidium@openttd.org>
parents: 9354
diff changeset
906 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
907 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
908
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
909 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
910 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
911 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
912 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
913 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
914
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
915 /* 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
916 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
917 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
918 }
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 /**
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
921 * 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
922 * 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
923 * @param tb Textbuf type to be changed
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
924 * @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
925 * @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
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 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
928 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
929 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
930 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
931 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
932 } 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
933 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
934 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
935 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
936
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
937 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
938 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
939
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 * Delete every character in the textbuffer
6481
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
942 * @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
943 */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
944 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
945 {
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
946 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
947 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
948 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
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
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 * 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
953 * 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
954 * length of the string
6481
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
955 * @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
956 * @param key Character to be inserted
7372
694c7b595661 (svn r10736) -Fix: Correct all mispellings of 'successful'.
peter1138 <peter1138@openttd.org>
parents: 7346
diff changeset
957 * @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
958 */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
959 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
960 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
961 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
962 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
963 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
964 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
965 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
966 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
967 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
968
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
969 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
970 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
971 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
972 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
973 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
974 }
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 /**
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
977 * 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
978 * 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
979 * @param tb Textbuf type where navigation occurs
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
980 * @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
981 * @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
982 */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
983 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
984 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
985 switch (navmode) {
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
986 case WKC_LEFT:
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
987 if (tb->caretpos != 0) {
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
988 WChar c;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
989 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
990 Utf8Decode(&c, s);
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
991 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
992 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
993
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
994 return true;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
995 }
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
996 break;
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 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
999 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
1000 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
1001
9390
45c874394355 (svn r13301) -Fix [FS#1997]: resolve more MSVC 9 x64 warnings.
rubidium <rubidium@openttd.org>
parents: 9354
diff changeset
1002 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
1003 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
1004
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1005 return true;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1006 }
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1007 break;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1008
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1009 case WKC_HOME:
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1010 tb->caretpos = 0;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1011 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
1012 return true;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1013
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1014 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
1015 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
1016 tb->caretxoffs = tb->width;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1017 return true;
8819
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1018
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1019 default:
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1020 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
1021 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1022
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1023 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
1024 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1025
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1026 /**
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1027 * 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
1028 * 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
1029 * @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
1030 * @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
1031 * @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
1032 * @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
1033 * 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
1034 * 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
1035 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
1036 {
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
1037 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
1038
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
1039 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
1040 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
1041 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
1042 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
1043 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
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
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1046 /**
6481
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
1047 * 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
1048 * 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
1049 * 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
1050 * @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
1051 */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1052 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
1053 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1054 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
1055
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1056 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
1057 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
1058
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
1059 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
1060 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
1061 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
1062 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
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
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
1065 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
1066
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
1067 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
1068 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
1069 }
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 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
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 /* 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
1074 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
1075
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1076 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
1077 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
1078 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
1079 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1080 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
1081 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1082
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
1083 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
1084 {
12103
eecff8281292 (svn r16516) -Codechange: Added click and drag handling for nested widgets.
alberth <alberth@openttd.org>
parents: 12080
diff changeset
1085 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
1086 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
1087 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
1088 (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
1089 }
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
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 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
1092 {
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
1093 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
1094
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
1095 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
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 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
1098 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
1099
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10276
diff changeset
1100 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
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_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
1103 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
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_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
1107 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
1108 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
1109 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
1110
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 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
1112 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
1113 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
1114
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 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
1116 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
1117 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
1118
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
1119 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
1120 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
1121 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
1122 } 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
1123 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
1124 }
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
1125 }
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
1126
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10276
diff changeset
1127 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
1128 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1129
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
1130 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
1131 {
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
1132 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
1133 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
1134 /* 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
1135 * 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
1136 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
1137 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
1138 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
1139 }
76f750feb4fc (svn r15273) -Fix: OSK of the chat did not update the caret graphics
rubidium <rubidium@openttd.org>
parents: 10816
diff changeset
1140 }
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
1141 }
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
1142
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
1143 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
1144 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1145 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
1146
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
1147 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
1148
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
1149 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
1150
8819
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1151 DrawPixelInfo dpi;
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1152 int delta;
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1153
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1154 /* 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
1155 if (!FillDrawPixelInfo(&dpi,
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1156 wi->left + 4,
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1157 wi->top + 1,
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1158 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
1159 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
1160 return;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1161 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1162
8819
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1163 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
1164 _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
1165
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1166 /* 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
1167 * 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
1168 const Textbuf *tb = &this->text;
8819
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1169
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1170 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
1171 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
1172
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1173 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
1174
11436
caf4456fbbf3 (svn r15794) -Codechange: remove the DoDrawString part of the old text drawing API
rubidium <rubidium@openttd.org>
parents: 11429
diff changeset
1175 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
1176 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
1177 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
1178 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
1179 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1180
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1181 _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
1182 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1183
10563
2271e0ee2758 (svn r14820) -Codechange: use (the correct) enum-type instead of just int (Zuu)
rubidium <rubidium@openttd.org>
parents: 10547
diff changeset
1184 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
1185 {
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
1186 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
1187 }
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 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
1190 {
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
1191 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
1192 }
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
1193
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
1194 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
1195 {
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
1196 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
1197 }
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
1198
10547
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1199 void QueryStringBaseWindow::OnOpenOSKWindow(int wid)
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1200 {
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1201 ShowOnScreenKeyboard(this, wid, 0, 0);
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1202 }
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1203
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1204 enum QueryStringWidgets {
11652
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1205 QUERY_STR_WIDGET_CLOSEBOX,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1206 QUERY_STR_WIDGET_CAPTION,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1207 QUERY_STR_WIDGET_BACKGROUND,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1208 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
1209 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
1210 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
1211 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
1212 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1213
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1214
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
1215 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
1216 {
9916
fa925e28f10e (svn r14069) -Fix: silence MSVC 64-bits compile warnings.
rubidium <rubidium@openttd.org>
parents: 9897
diff changeset
1217 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
1218 {
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
1219 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
1220 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
1221
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
1222 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
1223 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1224
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
1225 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
1226 {
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 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
1228 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
1229
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
1230 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
1231 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1232
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
1233 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
1234 {
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 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
1236 /* 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
1237 * 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
1238 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
1239 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
1240 } 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
1241 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
1242 }
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
1243 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
1244 }
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 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1246
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
1247 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
1248 {
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 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
1250 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
1251 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
1252 /* 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
1253 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
1254 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
1255 /* 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
1256 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
1257 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
1258 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
1259 }
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
1260 }
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
1261
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
1262 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
1263 {
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
1264 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
1265 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1266
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
1267 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
1268 {
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
1269 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
1270 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
1271 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
1272 case HEBR_EDITING: {
9399
617011acf06f (svn r13310) -Fix: invalidate OSK when parent editbox changes (from keyboard)
smatz <smatz@openttd.org>
parents: 9394
diff changeset
1273 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
1274 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
1275 } break;
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10276
diff changeset
1276 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
1277 /* 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
1278 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
1279 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
1280 }
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
1281 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
1282 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1283
10547
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1284 virtual void OnOpenOSKWindow(int wid)
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1285 {
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1286 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
1287 }
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1288
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
1289 ~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
1290 {
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
1291 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
1292 Window *parent = this->parent;
aeff7240b474 (svn r13304) -Fix (r13042): possible double free (showed up in r13092)
smatz <smatz@openttd.org>
parents: 9390
diff changeset
1293 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
1294 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
1295 }
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
1296 }
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
1297 };
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
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1299 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
1300 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_BLACK_CROSS, STR_TOOLTIP_CLOSE_WINDOW}, // QUERY_STR_WIDGET_CLOSEBOX
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1301 { WWT_CAPTION, RESIZE_NONE, COLOUR_GREY, 11, 259, 0, 13, STR_WHITE_STRINGN, STR_NULL}, // QUERY_STR_WIDGET_CAPTION
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
1302 { 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
1303 { WWT_EDITBOX, RESIZE_NONE, COLOUR_GREY, 2, 257, 16, 27, 0x0, STR_NULL}, // QUERY_STR_WIDGET_TEXT
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1304 { WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 0, 86, 30, 41, STR_BUTTON_DEFAULT, STR_NULL}, // QUERY_STR_WIDGET_DEFAULT
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1305 { WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 87, 172, 30, 41, STR_BUTTON_CANCEL, STR_NULL}, // QUERY_STR_WIDGET_CANCEL
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1306 { WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 173, 259, 30, 41, STR_BUTTON_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
1307 { 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
1308 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1309
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
1310 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
1311 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
1312 NWidget(WWT_CLOSEBOX, COLOUR_GREY, QUERY_STR_WIDGET_CLOSEBOX),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1313 NWidget(WWT_CAPTION, COLOUR_GREY, QUERY_STR_WIDGET_CAPTION), SetDataTip(STR_WHITE_STRINGN, 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
1314 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
1315 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
1316 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
1317 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
1318 NWidget(NWID_HORIZONTAL),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1319 NWidget(WWT_TEXTBTN, COLOUR_GREY, QUERY_STR_WIDGET_DEFAULT), SetMinimalSize(87, 12), SetDataTip(STR_BUTTON_DEFAULT, STR_NULL),
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1320 NWidget(WWT_TEXTBTN, COLOUR_GREY, QUERY_STR_WIDGET_CANCEL), SetMinimalSize(86, 12), SetDataTip(STR_BUTTON_CANCEL, STR_NULL),
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1321 NWidget(WWT_TEXTBTN, COLOUR_GREY, QUERY_STR_WIDGET_OK), SetMinimalSize(87, 12), SetDataTip(STR_BUTTON_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
1322 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
1323 };
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
1324
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
1325 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
1326 190, 219, 260, 42, 260, 42,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5750
diff changeset
1327 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
1328 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
1329 _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
1330 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1331
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1332 /** 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
1333 * @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
1334 * @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
1335 * @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
1336 * @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
1337 * @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
1338 * 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
1339 * @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
1340 * @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
1341 */
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
1342 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
1343 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1344 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
1345
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
1346 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
1347
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
1348 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
1349 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
1350
10145
dbe302da93a8 (svn r14331) -Codechange: use an enum as additional parameter for ShowQueryString()
smatz <smatz@openttd.org>
parents: 10039
diff changeset
1351 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
1352
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
1353 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
1354 /* 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
1355 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
1356 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
1357 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
1358 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
1359 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
1360 }
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
1361
7997
d109780d515b (svn r11555) -Codechange: use the new members introduced in r11551.
rubidium <rubidium@openttd.org>
parents: 7954
diff changeset
1362 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
1363 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
1364 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
1365 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
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
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1368
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1369 enum QueryWidgets {
11652
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1370 QUERY_WIDGET_CLOSEBOX,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1371 QUERY_WIDGET_CAPTION,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1372 QUERY_WIDGET_BACKGROUND,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1373 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
1374 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
1375 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1376
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 * 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
1379 */
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1380 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
1381 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
1382 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
1383 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
1384
9319
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1385 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
1386 {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1387 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
1388 this->parent = parent;
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1389 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
1390 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
1391
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1392 /* 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
1393 * 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
1394 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
1395 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
1396 this->message = message;
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1397 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
1398
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
1399 this->FindWindowPlacementAndResize(desc);
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1400 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1401
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1402 ~QueryWindow()
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1403 {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1404 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
1405 }
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1406
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1407 virtual void OnPaint()
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 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
1410 this->DrawWidgets();
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1411 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
1412
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
1413 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
1414 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1415
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1416 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
1417 {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1418 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
1419 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
1420 /* 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
1421 * 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
1422 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
1423 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
1424 /* 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
1425 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
1426 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
1427 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
1428 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
1429 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
1430 }
9319
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1431 } break;
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1432 case QUERY_WIDGET_NO:
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1433 delete this;
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1434 break;
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1435 }
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1436 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1437
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
1438 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
1439 {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1440 /* 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
1441 switch (keycode) {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1442 case WKC_RETURN:
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1443 case WKC_NUM_ENTER:
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1444 if (this->proc != NULL) {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1445 this->proc(this->parent, true);
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1446 this->proc = NULL;
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1447 }
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1448 /* Fallthrough */
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1449 case WKC_ESC:
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1450 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
1451 return ES_HANDLED;
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1452 }
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
1453 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
1454 }
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1455 };
5584
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
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1458 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
1459 { 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
1460 { 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
1461 { WWT_PANEL, RESIZE_NONE, COLOUR_RED, 0, 209, 14, 81, 0x0, /*OVERRIDE*/STR_NULL}, // QUERY_WIDGET_BACKGROUND
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1462 {WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_YELLOW, 20, 90, 62, 73, STR_QUIT_NO, STR_NULL}, // QUERY_WIDGET_NO
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1463 {WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_YELLOW, 120, 190, 62, 73, STR_QUIT_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
1464 { 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
1465 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1466
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
1467 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
1468 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
1469 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
1470 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
1471 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
1472 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
1473 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
1474 NWidget(NWID_HORIZONTAL), SetPIP(20, 29, 19),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1475 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, QUERY_WIDGET_NO), SetMinimalSize(71, 12), SetDataTip(STR_QUIT_NO, STR_NULL),
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1476 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, QUERY_WIDGET_YES), SetMinimalSize(71, 12), SetDataTip(STR_QUIT_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
1477 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
1478 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
1479 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
1480 };
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
1481
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
1482 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
1483 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
1484 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
1485 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
1486 _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
1487 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1488
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1489 /** 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
1490 * 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
1491 * 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
1492 * @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
1493 * @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
1494 * @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
1495 * 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
1496 * @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
1497 */
9319
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1498 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
1499 {
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1500 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
1501 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1502
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1503
11862
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1504 enum SaveLoadWindowWidgets {
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1505 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
1506 SLWW_WINDOWTITLE,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1507 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
1508 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
1509 SLWW_BACKGROUND,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1510 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
1511 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
1512 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
1513 SLWW_SCROLLBAR,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1514 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
1515 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
1516 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
1517 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
1518 SLWW_RESIZE,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1519 };
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1520
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1521 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
1522 { 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
1523 { WWT_CAPTION, RESIZE_RIGHT, COLOUR_GREY, 11, 256, 0, 13, STR_NULL, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS}, // SLWW_WINDOWTITLE
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1524 { WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_GREY, 0, 127, 14, 25, STR_SORT_BY_NAME, STR_TOOLTIP_SORT_ORDER}, // SLWW_SORT_BYNAME
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1525 { WWT_PUSHTXTBTN, RESIZE_RIGHT, COLOUR_GREY, 128, 256, 14, 25, STR_SORT_BY_DATE, STR_TOOLTIP_SORT_ORDER}, // 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
1526 { 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
1527 { 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
1528 { 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
1529 { 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
1530 { WWT_SCROLLBAR, RESIZE_LRB, COLOUR_GREY, 245, 256, 60, 141, 0x0, STR_TOOLTIP_VSCROLL_BAR_SCROLLS_LIST}, // SLWW_SCROLLBAR
12619
2f530108f787 (svn r17062) -Change: unify the naming of some 125 strings
rubidium <rubidium@openttd.org>
parents: 12452
diff changeset
1531 { WWT_PUSHTXTBTN, RESIZE_RTB, COLOUR_GREY, 0, 244, 142, 153, STR_INTRO_ONLINE_CONTENT, STR_INTRO_TOOLTIP_ONLINE_CONTENT}, // 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
1532 { 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
1533 { 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
1534 { WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 0, 0, 0x0, STR_NULL}, // SLWW_SAVE_GAME
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1535 { WWT_RESIZEBOX, RESIZE_LRTB, COLOUR_GREY, 245, 256, 142, 153, 0x0, STR_TOOLTIP_RESIZE}, // 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
1536 { 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
1537 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1538
11865
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1539 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
1540 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
1541 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
1542 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
1543 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
1544 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
1545 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1546 NWidget(NWID_HORIZONTAL),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1547 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYNAME), SetMinimalSize(128, 12), SetDataTip(STR_SORT_BY_NAME, STR_TOOLTIP_SORT_ORDER),
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1548 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYDATE), SetMinimalSize(129, 12), SetDataTip(STR_SORT_BY_DATE, STR_TOOLTIP_SORT_ORDER), SetResize(1, 0),
11865
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(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
1551 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
1552 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
1553 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
1554 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
1555 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
1556 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_CONTENT_DOWNLOAD), SetMinimalSize(245, 12), SetResize(1, 0),
12619
2f530108f787 (svn r17062) -Change: unify the naming of some 125 strings
rubidium <rubidium@openttd.org>
parents: 12452
diff changeset
1557 SetDataTip(STR_INTRO_ONLINE_CONTENT, STR_INTRO_TOOLTIP_ONLINE_CONTENT),
11865
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1558 EndContainer(),
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_VERTICAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1560 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
1561 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
1562 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
1563 EndContainer(),
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 EndContainer(),
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_VERTICAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1568 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
1569 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
1570 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
1571 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
1572 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
1573 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1574 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
1575 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1576 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
1577 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1578 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1579 };
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1580
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1581 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
1582 { 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
1583 { WWT_CAPTION, RESIZE_RIGHT, COLOUR_GREY, 11, 256, 0, 13, STR_NULL, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS}, // SLWW_WINDOWTITLE
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1584 { WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_GREY, 0, 127, 14, 25, STR_SORT_BY_NAME, STR_TOOLTIP_SORT_ORDER}, // SLWW_SORT_BYNAME
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1585 { WWT_PUSHTXTBTN, RESIZE_RIGHT, COLOUR_GREY, 128, 256, 14, 25, STR_SORT_BY_DATE, STR_TOOLTIP_SORT_ORDER}, // 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
1586 { 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
1587 { 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
1588 { 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
1589 { 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
1590 { 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
1591 { WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 0, 0, 0x0, STR_NULL}, // SLWW_CONTENT_DOWNLOAD
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1592 { WWT_EDITBOX, RESIZE_RTB, COLOUR_GREY, 2, 254, 154, 165, STR_SAVELOAD_OSKTITLE, STR_SAVELOAD_EDITBOX_TOOLTIP}, // SLWW_SAVE_OSK_TITLE
11862
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1593 { 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
1594 { WWT_PUSHTXTBTN, RESIZE_RTB, COLOUR_GREY, 128, 244, 168, 179, STR_SAVELOAD_SAVE_BUTTON, STR_SAVELOAD_SAVE_TOOLTIP}, // SLWW_SAVE_GAME
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1595 { WWT_RESIZEBOX, RESIZE_LRTB, COLOUR_GREY, 245, 256, 168, 179, 0x0, STR_TOOLTIP_RESIZE}, // 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
1596 { 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
1597 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1598
11865
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1599 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
1600 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
1601 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
1602 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
1603 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
1604 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
1605 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_HORIZONTAL),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1607 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYNAME), SetMinimalSize(128, 12), SetDataTip(STR_SORT_BY_NAME, STR_TOOLTIP_SORT_ORDER),
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1608 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYDATE), SetMinimalSize(129, 12), SetDataTip(STR_SORT_BY_DATE, STR_TOOLTIP_SORT_ORDER), SetResize(1, 0),
11865
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 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
1611 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
1612 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
1613 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
1614 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
1615 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
1616 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
1617 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
1618 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1619 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1620 NWidget(WWT_EDITBOX, COLOUR_GREY, SLWW_SAVE_OSK_TITLE), SetMinimalSize(253, 12), SetPadding(3, 2, 2, 2), SetResize(1, 0),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1621 SetDataTip(STR_SAVELOAD_OSKTITLE, STR_SAVELOAD_EDITBOX_TOOLTIP),
11865
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1622 EndContainer(),
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_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
1625 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
1626 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
1627 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
1628 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
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 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1631 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
1632 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
1633 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
1634 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
1635 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1636 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
1637 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1638 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1639 };
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1640
11085
8da1855e9f14 (svn r15428) -Codechange: consistently use colour instead of having both color and colour.
rubidium <rubidium@openttd.org>
parents: 11081
diff changeset
1641 /* 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
1642 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
1643 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
1644 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
1645 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1646
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
1647 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
1648 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1649 _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
1650 FiosFreeSavegameList();
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1651
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1652 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
1653 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
1654 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
1655 case SLD_SAVE_SCENARIO:
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1656 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
1657 case SLD_LOAD_HEIGHTMAP:
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1658 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
1659
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1660 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
1661 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1662 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1663
11480
88683778e6e5 (svn r15841) -Fix: the saveload window could draw directory partly outside the window
rubidium <rubidium@openttd.org>
parents: 11450
diff changeset
1664 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
1665 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1666 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
1667 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
1668 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
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 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
1671 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
1672 _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
1673 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1674
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
1675 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
1676 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
1677 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
1678 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1679
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
1680 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
1681 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1682 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
1683 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
1684
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1685 /* 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
1686 * 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
1687 * 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
1688 */
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1689 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
1690 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
1691 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
1692 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
1693 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
1694 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
1695 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1696 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1697
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1698 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
1699 if (s_amount > 0) {
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1700 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
1701 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1702 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1703
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
1704 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
1705
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
1706 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
1707 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
1708 FiosItem o_dir;
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1709 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
1710
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
1711 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
1712 {
10533
53a8506c2079 (svn r14790) -Codechange: unify generation of default savegame/screenshot names (PhilSophus)
rubidium <rubidium@openttd.org>
parents: 10499
diff changeset
1713 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
1714 }
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
9897
5b558ce6cb0e (svn r14046) -Codechange: make the size of querystring "widgets" more configurable.
rubidium <rubidium@openttd.org>
parents: 9790
diff changeset
1716 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
1717 {
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
1718 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
1719 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
1720 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
1721 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
1722 STR_SAVELOAD_SAVE_SCENARIO,
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1723 STR_SAVELOAD_LOAD_HEIGHTMAP,
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
1724 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1725
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 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
1727 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
1728 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
1729
11702
cdaad565efe5 (svn r16088) -Codechange: merge HighLightStyle and ViewportHighlightMode as they are basically the same thing
rubidium <rubidium@openttd.org>
parents: 11653
diff changeset
1730 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
1731
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
1732 /* 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
1733 * 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
1734 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
1735 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
1736 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
1737 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
1738 break;
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1739
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1740 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
1741 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
1742 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
1743
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 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
1745 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
1746 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
1747 }
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
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
1749 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
1750
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1751 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
1752 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
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 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
1755 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
1756
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
1757 /* 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
1758 * 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
1759 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
1760 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
1761 }
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
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 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
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 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
1766
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
1767 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
1768 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
1769 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
1770 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
1771 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
1772 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
1773
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 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
1775 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
1776 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
1777 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
1778
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
1779 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
1780 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
1781 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
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 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
1784 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
1785 }
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
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
1787 /* 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
1788 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
1789 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
1790 }
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
1791
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
1792 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
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 ~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
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 /* 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
1798 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
1799 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
1800 }
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
1801 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
1802 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1803
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
1804 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
1805 {
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 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
1807
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1808 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
1809 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
1810 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
1811
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
1812 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
1813 _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
1814 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
1815 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1816
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1817 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
1818 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
1819 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
1820
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1821 y = widg->top + 1;
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1822 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
1823 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
1824
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
1825 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
1826 y += 10;
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1827 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
1828 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1829
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 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
1831 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
1832 }
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 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1834
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
1835 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
1836 {
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 switch (widget) {
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1838 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
1839 _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
1840 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
1841 _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
1842 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
1843 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1844
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1845 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
1846 _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
1847 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
1848 _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
1849 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
1850 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1851
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1852 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
1853 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
1854 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
1855 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
1856 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1857
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1858 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
1859 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
1860
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
1861 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
1862
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1863 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
1864
11256
f63c1d69ed92 (svn r15605) -Codechange: constify a function
rubidium <rubidium@openttd.org>
parents: 11230
diff changeset
1865 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
1866 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
1867 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
1868 _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
1869
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 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
1871 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
1872 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
1873
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 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
1875 } 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
1876 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
1877 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
1878 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
1879
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 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
1881 ShowHeightmapLoad();
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1882 } 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
1883 /* 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
1884 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
1885 UpdateTextBufferSize(&this->text);
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1886 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
1887 }
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
1888 } 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
1889 /* 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
1890 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
1891 BuildFileList();
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1892 }
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
1893 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
1894 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1895
11352
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1896 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
1897 if (!_network_available) {
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1898 ShowErrorMessage(INVALID_STRING_ID, STR_NETWORK_ERROR_NOTAVAILABLE, 0, 0);
11352
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1899 } else {
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1900 #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
1901 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
1902 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
1903 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
1904 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
1905 }
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1906 #endif
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1907 }
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1908 break;
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1909
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1910 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
1911 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
1912 }
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
1913 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1914
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
1915 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
1916 {
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
1917 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
1918 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
1919 }
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
1920 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1921
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
1922 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
1923 {
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 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
1925 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
1926 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
1927 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1928
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
1929 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
1930 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
1931 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
1932 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
1933 }
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
1934
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
1935 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
1936 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1937
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 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
1939 {
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 /* 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
1941 * 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
1942 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
1943
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1944 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
1945 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
1946 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
1947 } 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
1948 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
1949 /* 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
1950 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
1951 }
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1952
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
1953 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
1954 this->SetDirty();
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1955 } 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
1956 _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
1957 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
1958
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
1959 /* 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
1960 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
1961 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1962 }
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
1963
11524
420a4f0b4e0b (svn r15885) -Codechange: Removed new_size parameter of Window::OnResize() callback
alberth <alberth@openttd.org>
parents: 11482
diff changeset
1964 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
1965 {
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 /* 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
1967 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
1968 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
1969 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
1970
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
1971 /* 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
1972 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
1973 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
1974 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
1975 }
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
1976
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
1977 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
1978 }
11352
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1979
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1980 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
1981 {
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1982 BuildFileList();
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1983 }
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
1984 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1985
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
1986 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
1987 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
1988 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
1989 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
1990 _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
1991 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1992
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
1993 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
1994 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
1995 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
1996 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
1997 _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
1998 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1999
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
2000 /** 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
2001 * 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
2002 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
2003 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
2004 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
2005 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
2006 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
2007 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
2008 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
2009 };
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
2010
8149
ad7ddb6150dc (svn r11711) -Codechange: Name the Save Load Dialog Mode enum
belugas <belugas@openttd.org>
parents: 8144
diff changeset
2011 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
2012 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2013 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
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 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
2016 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
2017 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
2018 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
2019 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
2020 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
2021 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
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
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
2024 _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
2025 _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
2026
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
2027 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
2028 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2029
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
2030 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
2031 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2032 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
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
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2035 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
2036 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2037 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
2038 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
2039 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
2040 _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
2041 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2042
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2043 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
2044 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
2045 _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
2046 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2047
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2048 #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
2049 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
2050 _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
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 #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
2053
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2054 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
2055 _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
2056 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2057
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2058 default:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2059 _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
2060 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2061 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2062 }