annotate src/misc_gui.cpp @ 13118:cf2b48d0ea33 draft

(svn r17620) -Fix (r17502): edit box offsets were off. Now they're still off, but look (in my opinion) even better than before
author rubidium <rubidium@openttd.org>
date Wed, 23 Sep 2009 15:42:29 +0000
parents e3e4c1648e0c
children 3f7aeb884dcf
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"
13030
12fa346326b0 (svn r17528) -Codechange: use QSortT instead of qsort for sorting FiosItems
rubidium <rubidium@openttd.org>
parents: 13027
diff changeset
43 #include "core/sort_func.hpp"
8119
b6ec923e9fa8 (svn r11680) -Codechange: refactor more out of openttd.h and functions.h.
rubidium <rubidium@openttd.org>
parents: 8116
diff changeset
44
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
45 #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
46
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
47 /* 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
48 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
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
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 _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
52 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
53 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
54
11429
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
55 /** 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
56 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
57 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
58 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
59 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
60 };
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
61
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
62 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
63 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
64 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
65 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
66 EndContainer(),
12834
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
67 NWidget(WWT_PANEL, COLOUR_GREY, LIW_BACKGROUND), EndContainer(),
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 };
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
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
70 static const WindowDesc _land_info_desc(
12834
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
71 WDP_AUTO, WDP_AUTO, 0, 0, 0, 0,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5750
diff changeset
72 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
73 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
12834
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
74 NULL, _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
75 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
76
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
77 class LandInfoWindow : public Window {
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
78 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
79 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
80 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
81 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
82
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
83 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
84 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
85
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
86 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
87 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
88
9170
8c020e980b8c (svn r13033) -Fix [FS#2003](r13029): land info tool wasn't working
smatz <smatz@openttd.org>
parents: 9166
diff changeset
89 virtual void OnPaint()
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
90 {
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
91 this->DrawWidgets();
12834
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
92 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
93
12834
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
94 virtual void DrawWidget(const Rect &r, int widget) const
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
95 {
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
96 if (widget != LIW_BACKGROUND) return;
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
97
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
98 uint y = r.top + WD_TEXTPANEL_TOP;
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
99 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
100 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
101
12834
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
102 DrawString(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, y, this->landinfo_data[i], i == 0 ? TC_LIGHT_BLUE : TC_FROMSTRING, SA_CENTER);
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
103 y += FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL;
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
104 if (i == 0) y += 4;
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]);
12834
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
109 DrawStringMultiLine(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, y, r.bottom - WD_TEXTPANEL_BOTTOM, 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
12834
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
113 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *resize)
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
114 {
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
115 if (widget != LIW_BACKGROUND) return;
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
116
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
117 size->height = WD_TEXTPANEL_TOP + WD_TEXTPANEL_BOTTOM;
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
118 for (uint i = 0; i < LAND_INFO_CENTERED_LINES; i++) {
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
119 if (StrEmpty(this->landinfo_data[i])) break;
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
120
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
121 uint width = GetStringBoundingBox(this->landinfo_data[i]).width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT;
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
122 size->width = max(size->width, width);
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
123
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
124 size->height += FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL;
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
125 if (i == 0) size->height += 4;
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
126 }
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
127
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
128 if (!StrEmpty(this->landinfo_data[LAND_INFO_MULTICENTER_LINE])) {
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
129 uint width = GetStringBoundingBox(this->landinfo_data[LAND_INFO_MULTICENTER_LINE]).width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT;
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
130 size->width = max(size->width, min(300u, width));
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
131 SetDParamStr(0, this->landinfo_data[LAND_INFO_MULTICENTER_LINE]);
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
132 size->height += GetStringHeight(STR_JUST_RAW_STRING, size->width - WD_FRAMERECT_LEFT - WD_FRAMERECT_RIGHT);
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
133 }
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
134 }
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
135
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
136 LandInfoWindow(TileIndex tile) : Window() {
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
137 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
138
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
139 /* 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
140 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
141
9713
c94f47f48e76 (svn r13826) -Codechange: use 'INVALID_DATE' instead of '0' as placeholder in tile description
smatz <smatz@openttd.org>
parents: 9693
diff changeset
142 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
143
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 /* 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
145 * - 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
146 * - 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
147 */
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
148 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
149 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
150 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
151 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
152 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
153 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
154 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
155 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
156
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
157 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
158 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
159
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
160 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
161
12261
c42d8d239142 (svn r16676) -Codechange: Rename AcceptedCargo to CargoArray and its instances to more meaningful names.
frosch <frosch@openttd.org>
parents: 12244
diff changeset
162 CargoArray acceptance;
12946
560c26f15688 (svn r17439) -Fix (r17436): you weren't paid for cargo delivered to houses and headquarters anymore
smatz <smatz@openttd.org>
parents: 12927
diff changeset
163 AddAcceptedCargo(tile, acceptance, NULL);
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
164 GetTileDesc(tile, &td);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
165
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
166 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
167
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
168 /* Tiletype */
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
169 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
170 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
171 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
172
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
173 /* 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
174 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
175 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
176
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
177 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
178 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
179 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
180 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
181 }
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
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
183 /* 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
184 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
185 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
186 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
187 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
188 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
189 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
190 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
191 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
192 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
193 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
194 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
195 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
196 } 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
197 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
198 }
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
199 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
200 }
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
201 }
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
202 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
203 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
204
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 /* 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
206 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
207 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
208 SetDParam(0, TileX(tile));
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
209 SetDParam(1, TileY(tile));
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
210 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
211 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
212 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
213 line_nr++;
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
214
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
215 /* 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
216 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
217 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
218 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
219 SetDParam(1, t->index);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
220 }
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
221 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
222 line_nr++;
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
223
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
224 /* 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
225 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
226 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
227 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
228 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
229 }
258ab31489e0 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents: 9319
diff changeset
230
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
231 /* 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
232 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
233 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
234 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
235 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
236 }
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
237
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
238 /* 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
239 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
240 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
241 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
242 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
243 }
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
244
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
245 /* 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
246 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
247 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
248 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
249 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
250 }
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
251
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
252 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
253
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
254 /* 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
255 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
256
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 /* 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
258 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
259 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
260
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
261 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
262 if (acceptance[i] > 0) {
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
263 /* 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
264 if (found) {
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
265 *strp++ = ',';
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
266 *strp++ = ' ';
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
267 }
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
268 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
269
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
270 /* 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
271 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
272 SetDParam(0, acceptance[i]);
12415
6a77d1df56e2 (svn r16849) -Codechange: replace GetCargo() by CargoSpec::Get()
smatz <smatz@openttd.org>
parents: 12365
diff changeset
273 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
274 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
275 } else {
12415
6a77d1df56e2 (svn r16849) -Codechange: replace GetCargo() by CargoSpec::Get()
smatz <smatz@openttd.org>
parents: 12365
diff changeset
276 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
277 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
278 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
279 }
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
280 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
281
12834
f828651d0be0 (svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents: 12821
diff changeset
282 this->InitNested(&_land_info_desc);
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
283
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
284 #if 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
285 # 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
286 #else
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
287 # 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
288 #endif
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
289 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
290 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
291 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
292 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
293 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
294 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
295 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
296 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
297 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
298 #undef LANDINFOD_LEVEL
9155
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
299 }
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
300 };
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
301
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
302 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
303 {
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
304 DeleteWindowById(WC_LAND_INFO, 0);
bb7dd4c8ed68 (svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents: 9153
diff changeset
305 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
306 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
307
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
308 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
309 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
310 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
311 ResetObjectToPlace();
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
312 } else {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
313 _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
314 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
315 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
316 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
317
11429
8a62e44e06a1 (svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
318 /** 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
319 enum AboutWidgets {
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
320 AW_CLOSE, ///< Close the window
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
321 AW_CAPTION, ///< Title bar of the window
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
322 AW_BACKGROUND, ///< Background to draw on
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
323 AW_ABOUT_ORIG_COPYRIGHT, ///< Text with original copyright info
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
324 AW_ABOUT_VERSION, ///< OpenTTD version string
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
325 AW_FRAME, ///< The scrolling frame with goodies
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
326 AW_WEBSITE, ///< URL of OpenTTD website
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
327 AW_ABOUT_COPYRIGHT, ///< OpenTTD copyright info
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 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
329
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
330 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
331 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
332 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
333 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
334 EndContainer(),
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
335 NWidget(WWT_PANEL, COLOUR_GREY, AW_BACKGROUND), SetPIP(4, 2, 4),
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
336 NWidget(WWT_TEXT, COLOUR_GREY, AW_ABOUT_ORIG_COPYRIGHT), SetDataTip(STR_ABOUT_ORIGINAL_COPYRIGHT, STR_NULL),
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
337 NWidget(WWT_TEXT, COLOUR_GREY, AW_ABOUT_VERSION), SetDataTip(STR_ABOUT_VERSION, STR_NULL),
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
338 NWidget(WWT_FRAME, COLOUR_GREY, AW_FRAME), SetPadding(0, 5, 1, 5), EndContainer(),
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
339 NWidget(WWT_TEXT, COLOUR_GREY, AW_WEBSITE), SetDataTip(STR_BLACK_RAW_STRING, STR_NULL),
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
340 NWidget(WWT_TEXT, COLOUR_GREY, AW_ABOUT_COPYRIGHT), SetDataTip(STR_ABOUT_COPYRIGHT_OPENTTD, 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
341 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
342 };
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
343
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
344 static const WindowDesc _about_desc(
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
345 WDP_CENTER, WDP_CENTER, 0, 0, 0, 0,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5750
diff changeset
346 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
347 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
348 NULL, _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
349 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
350
13096
e3e4c1648e0c (svn r17596) -Codechange: constify some tables
smatz <smatz@openttd.org>
parents: 13072
diff changeset
351 static const char * const _credits[] = {
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
352 "Original design by Chris Sawyer",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
353 "Original graphics by Simon Foster",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
354 "",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
355 "The OpenTTD team (in alphabetical order):",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
356 " Jean-Francois Claeys (Belugas) - GUI, newindustries and more",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
357 " Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
358 " Matthijs Kooijman (blathijs) - Pathfinder-guru, pool rework",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
359 " Victor Fischer (Celestar) - Programming everywhere you need him to",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
360 " Christoph Elsenhans (frosch) - General coding",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
361 " Lo\xC3\xAF""c Guilloux (glx) - Windows Expert",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
362 " Michael Lutz (michi_cc) - Path based signals",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
363 " Owen Rudge (orudge) - Forum host, OS/2 port",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
364 " Peter Nelson (peter1138) - Spiritual descendant from newGRF gods",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
365 " Remko Bijker (Rubidium) - Lead coder and way more",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
366 " Zden\xC4\x9Bk Sojka (SmatZ) - Bug finder and fixer",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
367 " Thijs Marinussen (Yexo) - AI Framework",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
368 "",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
369 "Inactive Developers:",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
370 " Tam\xC3\xA1s Farag\xC3\xB3 (Darkvater) - Ex-Lead coder",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
371 " Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;)",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
372 " Jonathan Coome (Maedhros) - High priest of the NewGRF Temple",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
373 " Attila B\xC3\xA1n (MiHaMiX) - Developer WebTranslator 1 and 2",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
374 " Christoph Mallon (Tron) - Programmer, code correctness police",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
375 "",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
376 "Retired Developers:",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
377 " Ludvig Strigeus (ludde) - OpenTTD author, main coder (0.1 - 0.3.3)",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
378 " Serge Paquet (vurlix) - Assistant project manager, coder (0.1 - 0.3.3)",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
379 " Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3.0 - 0.3.6)",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
380 " Benedikt Br\xC3\xBCggemeier (skidd13) - Bug fixer and code reworker",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
381 " Patric Stout (TrueLight) - Programmer (0.3 - pre0.7), sys op (active)",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
382 "",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
383 "Special thanks go out to:",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
384 " Josef Drexler - For his great work on TTDPatch",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
385 " Marcin Grzegorczyk - For his documentation of TTD internals",
13063
d6196415e66a (svn r17561) -Fix: diacritics was missing at few places
smatz <smatz@openttd.org>
parents: 13034
diff changeset
386 " Petr Baudi\xC5\xA1 (pasky) - Many patches, newGRF support",
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
387 " Stefan Mei\xC3\x9Fner (sign_de) - For his work on the console",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
388 " Simon Sasburg (HackyKid) - Many bugfixes he has blessed us with",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
389 " Cian Duffy (MYOB) - BeOS port / manual writing",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
390 " Christian Rosentreter (tokai) - MorphOS / AmigaOS port",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
391 " Richard Kempton (richK) - additional airports, initial TGP implementation",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
392 "",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
393 " Alberto Demichelis - Squirrel scripting language \xC2\xA9 2003-2008",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
394 " Markus F.X.J. Oberhumer - (Mini)LZO for loading old savegames \xC2\xA9 1996-2008",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
395 " L. Peter Deutsch - MD5 implementation \xC2\xA9 1999, 2000, 2002",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
396 " Michael Blunck - Pre-Signals and Semaphores \xC2\xA9 2003",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
397 " George - Canal/Lock graphics \xC2\xA9 2003-2004",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
398 " David Dallaston - Tram tracks",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
399 " Marcin Grzegorczyk - Foundations for Tracks on Slopes",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
400 " All Translators - Who made OpenTTD a truly international game",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
401 " Bug Reporters - Without whom OpenTTD would still be full of bugs!",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
402 "",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
403 "",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
404 "And last but not least:",
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
405 " Chris Sawyer - For an amazing game!"
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
406 };
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
407
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
408 struct AboutWindow : public Window {
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
409 int text_position; ///< The top of the scrolling text
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
410 byte counter; ///< Used to scroll the text every 5 ticks
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
411 int line_height; ///< The height of a single line
12867
00a4b1fd0faf (svn r17359) -Fix: put static before cv qualifier, some compilers complain about that
smatz <smatz@openttd.org>
parents: 12856
diff changeset
412 static const int num_visible_lines = 19; ///< The number of lines visible simultaneously
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
413
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
414 AboutWindow() : Window()
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
415 {
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
416 this->InitNested(&_about_desc);
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
417
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
418 this->counter = 5;
13072
75bd67594af2 (svn r17572) -Codechange: Use the Window::GetWidget() function to access nested widgets through the nested_array.
alberth <alberth@openttd.org>
parents: 13063
diff changeset
419 this->text_position = this->GetWidget<NWidgetBase>(AW_FRAME)->pos_y + this->GetWidget<NWidgetBase>(AW_FRAME)->current_y;
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
420 }
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
421
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
422 virtual void SetStringParameters(int widget) const
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
423 {
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
424 if (widget == AW_WEBSITE) SetDParamStr(0, "Website: http://www.openttd.org");
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
425 }
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
426
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
427 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *resize)
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
428 {
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
429 if (widget != AW_FRAME) return;
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
430
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
431 this->line_height = FONT_HEIGHT_NORMAL;
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
432
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
433 Dimension d;
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
434 d.height = this->line_height * num_visible_lines;
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
435
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
436 d.width = 0;
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
437 for (uint i = 0; i < lengthof(_credits); i++) {
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
438 d.width = max(d.width, GetStringBoundingBox(_credits[i]).width);
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
439 }
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
440 d.width += WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT;
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
441
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
442 *size = maxdim(*size, d);
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
443 }
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
444
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
445 virtual void OnPaint()
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
446 {
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
447 this->DrawWidgets();
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
448 }
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
449
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
450 virtual void DrawWidget(const Rect &r, int widget) const
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
451 {
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
452 if (widget != AW_FRAME) return;
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
453
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
454 int y = this->text_position;
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
455
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
456 /* Show all scrolling _credits */
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
457 for (uint i = 0; i < lengthof(_credits); i++) {
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
458 if (y >= r.top + 7 && y < r.bottom - this->line_height) {
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
459 DrawString(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, y, _credits[i], TC_BLACK);
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
460 }
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
461 y += this->line_height;
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
462 }
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
463 }
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
464
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
465 virtual void OnTick()
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
466 {
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
467 if (--this->counter == 0) {
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
468 this->counter = 5;
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
469 this->text_position--;
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
470 /* If the last text has scrolled start a new from the start */
13072
75bd67594af2 (svn r17572) -Codechange: Use the Window::GetWidget() function to access nested widgets through the nested_array.
alberth <alberth@openttd.org>
parents: 13063
diff changeset
471 if (this->text_position < (int)(this->GetWidget<NWidgetBase>(AW_FRAME)->pos_y - lengthof(_credits) * this->line_height)) {
75bd67594af2 (svn r17572) -Codechange: Use the Window::GetWidget() function to access nested widgets through the nested_array.
alberth <alberth@openttd.org>
parents: 13063
diff changeset
472 this->text_position = this->GetWidget<NWidgetBase>(AW_FRAME)->pos_y + this->GetWidget<NWidgetBase>(AW_FRAME)->current_y;
12820
a8612d0074e8 (svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents: 12819
diff changeset
473 }
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
474 this->SetDirty();
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
475 }
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
476 }
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
477 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
478
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
479 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
480 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
481 DeleteWindowById(WC_GAME_OPTIONS, 0);
9227
35dbb597e9fd (svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents: 9226
diff changeset
482 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
483 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
484
11793
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
485 /** 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
486 enum ErrorMessageWidgets {
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
487 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
488 EMW_CAPTION,
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
489 EMW_PANEL,
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
490 EMW_FACE,
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
491 EMW_MESSAGE,
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
492 };
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
493
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
494 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
495 { 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
496 { 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
497 { 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
498 { 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
499 { 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
500 { 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
501 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
502
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
503 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
504 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
505 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
506 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
507 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
508 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
509 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
510 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
511 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
512 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
513 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
514 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
515 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
516 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
517 NWidget(WWT_EMPTY, COLOUR_RED, EMW_FACE), SetMinimalSize(1, 1), SetFill(false, false),
12789
dd7db20331f6 (svn r17271) -Fix: SetFill sometimes used 1/0 when it should be using true/false
rubidium <rubidium@openttd.org>
parents: 12778
diff changeset
518 NWidget(NWID_SPACER), SetFill(true, false),
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
519 EndContainer(),
12789
dd7db20331f6 (svn r17271) -Fix: SetFill sometimes used 1/0 when it should be using true/false
rubidium <rubidium@openttd.org>
parents: 12778
diff changeset
520 NWidget(NWID_SPACER), SetFill(true, true), SetResize(0, 1),
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
521 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
522 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
523 };
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
524
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
525 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
526 { 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
527 { 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
528 { 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
529 { 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
530 { 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
531 { 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
532 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
533
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
534 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
535 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
536 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
537 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
538 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
539 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
540 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
541 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
542 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
543 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
544 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
545 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
546 EndContainer(),
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
547 };
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
548
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
549 struct ErrmsgWindow : public Window {
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
550 private:
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
551 uint duration;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
552 uint64 decode_params[20];
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
553 StringID message_1;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
554 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
555 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
556
11445
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
557 int y[4];
9682
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
558
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
559 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
560 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
561 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
562 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
563 {
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
564 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
565 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
566 this->message_1 = msg1;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
567 this->message_2 = msg2;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
568 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
569
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
570 SwitchToErrorRefStack();
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
571 RewindTextRefStack();
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
572
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
573 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
574
11793
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
575 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
576 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
577 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
578
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
579 SwitchToNormalRefStack();
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
580
11445
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
581 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
582 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
583
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
584 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
585 y[2] = 14 + 1;
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
586 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
587 } else {
11445
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
588 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
589 y[1] = height - 1;
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
590 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
591 y[2] = 14 + 1;
231379be7cf9 (svn r15803) -Codechange: use the new text drawing API for multicenter
rubidium <rubidium@openttd.org>
parents: 11443
diff changeset
592 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
593 }
ed50c006a790 (svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents: 9659
diff changeset
594
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
595 this->FindWindowPlacementAndResize(width, height);
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
596 }
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
597
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
598 virtual void OnPaint()
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
599 {
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
600 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
601 this->DrawWidgets();
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
602 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
603
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
604 /* 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
605 * 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
606 */
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
607 SwitchToErrorRefStack();
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
608 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
609
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
610 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
611 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
612 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
613 }
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
614
11793
e11bc207c6e2 (svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents: 11792
diff changeset
615 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
616 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
617
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
618 /* 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
619 SwitchToNormalRefStack();
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
620 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
621
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
622 virtual void OnMouseLoop()
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
623 {
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
624 /* 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
625 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
626 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
627
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
628 virtual void OnHundredthTick()
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
629 {
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
630 /* 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
631 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
632 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
633 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
634 }
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
635 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
636
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
637 ~ErrmsgWindow()
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
638 {
10816
35b3e8e25590 (svn r15151) -Fix: tile 0 can now be highlighted as error tile
Yexo <Yexo@openttd.org>
parents: 10771
diff changeset
639 SetRedErrorSquare(INVALID_TILE);
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
640 extern StringID _switch_mode_errorstr;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
641 _switch_mode_errorstr = INVALID_STRING_ID;
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
642 }
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
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
644 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
645 {
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
646 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
647 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
648 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
649 }
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
650 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
651
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 /**
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
653 * 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
654 * @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
655 * @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
656 * @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
657 * @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
658 * @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
659 */
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
660 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
661 {
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
662 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
663 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
664
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
665 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
666
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
667 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
668
9265
746b863fafe6 (svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents: 9228
diff changeset
669 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
670
8819
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
671 Point pt;
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
672 const ViewPort *vp;
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
673
11792
27fee64a19f0 (svn r16182) -Fix: hardcoded (old sized) MAX_COMPANIES constant
rubidium <rubidium@openttd.org>
parents: 11770
diff changeset
674 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
675 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
676 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
677 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
678
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
679 /* 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
680 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
681 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
682
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
683 /* 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
684 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
685 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
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 } else {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
688 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
689 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
690 }
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
691
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
692 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
693 _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
694 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
695 } else {
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
696 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
697 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
698 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
699 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
700 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
701 } else {
9693
cf5a441f1069 (svn r13800) -Codechange: minor comment style fixes in misc_gui.cpp
smatz <smatz@openttd.org>
parents: 9682
diff changeset
702 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
703 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
704 }
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
705
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
706 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
707 _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
708 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
709 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
710 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
711
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
712 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
713 {
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
714 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
715
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
716 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
717 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
718 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
719 }
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
720 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
721 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
722 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
723
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
724 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
725 {
10642
29bc871ff8d1 (svn r14944) -Cleanup: add spaces around some operators
rubidium <rubidium@openttd.org>
parents: 10582
diff changeset
726 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
727 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
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 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
730 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
731 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
732 }
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
733 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
734 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
735 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
736
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
737 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
738 {
10642
29bc871ff8d1 (svn r14944) -Cleanup: add spaces around some operators
rubidium <rubidium@openttd.org>
parents: 10582
diff changeset
739 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
740
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
741 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
742 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
743 }
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
744
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
745 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
746 {
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
747 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
748
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
749 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
750
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
751 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
752 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
753 }
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
754
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
755 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
756 {
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
757 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
758
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
759 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
760 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
761 }
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
762
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
763 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
764 {
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
765 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
766
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
767 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
768 *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
769 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
770
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
771 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
772 { 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
773 { 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
774 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
775
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
776 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
777 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
778 };
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
779
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
780 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
781 {
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
782 StringID string_id;
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
783 byte paramcount;
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
784 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
785 bool use_left_mouse_button;
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
786
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
787 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
788 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
789 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
790 {
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
791 this->string_id = str;
12927
950767ea4ee5 (svn r17420) -Codechange: replace assert() by assert_compile() where possible
smatz <smatz@openttd.org>
parents: 12878
diff changeset
792 assert_compile(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
793 assert(paramcount <= lengthof(this->params));
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
794 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
795 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
796 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
797
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
798 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
799 this->widget[0].right = width;
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
800 this->widget[0].bottom = height;
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
801
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
802 FindWindowPlacementAndResize(width, height);
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
803 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
804
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
805 virtual void OnPaint()
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
806 {
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
807 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
808 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
809
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
810 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
811 SetDParam(arg, this->params[arg]);
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
812 }
12811
e44c6514889f (svn r17299) -Fix: the tooltip could get truncated under some circumstances due to its custom string height determination
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
813 DrawStringMultiLine(3, this->width - 3, 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
814 }
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
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
816 virtual void OnMouseLoop()
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
817 {
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
818 /* 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
819 * 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
820 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
821 }
9186
c5c545191a71 (svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents: 9179
diff changeset
822 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
823
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
824 /** Shows a tooltip
6481
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
825 * @param str String to be displayed
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
826 * @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
827 * @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
828 * @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
829 */
5ab8b1b156bb (svn r13922) -Codechange: Move measurement-tooltip related stuff out of the general tooltip window.
frosch <frosch@openttd.org>
parents: 9752
diff changeset
830 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
831 {
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
832 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
833
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
834 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
835
9781
5ab8b1b156bb (svn r13922) -Codechange: Move measurement-tooltip related stuff out of the general tooltip window.
frosch <frosch@openttd.org>
parents: 9752
diff changeset
836 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
837
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
838 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
839 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
840 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
841
12811
e44c6514889f (svn r17299) -Fix: the tooltip could get truncated under some circumstances due to its custom string height determination
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
842 Dimension br;
e44c6514889f (svn r17299) -Fix: the tooltip could get truncated under some circumstances due to its custom string height determination
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
843 br.width = min(GetStringBoundingBox(buffer).width, 194);
e44c6514889f (svn r17299) -Fix: the tooltip could get truncated under some circumstances due to its custom string height determination
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
844 br.height = GetStringHeight(str, 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
845
12811
e44c6514889f (svn r17299) -Fix: the tooltip could get truncated under some circumstances due to its custom string height determination
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
846 /* increase slightly to have some space around the box */
e44c6514889f (svn r17299) -Fix: the tooltip could get truncated under some circumstances due to its custom string height determination
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
847 br.width += 6;
e44c6514889f (svn r17299) -Fix: the tooltip could get truncated under some circumstances due to its custom string height determination
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
848 br.height += 4;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
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 /* 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
851 * 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
852 * 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
853 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
854 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
855 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
856
11837
f32d9dd80187 (svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents: 11793
diff changeset
857 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
858 _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
859 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
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
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
862
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
863 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
864 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
865 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
866 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
867
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
868 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
869 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
870
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
871 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
872 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
873 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
874 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
875 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
876 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
877 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
878 }
12261
c42d8d239142 (svn r16676) -Codechange: Rename AcceptedCargo to CargoArray and its instances to more meaningful names.
frosch <frosch@openttd.org>
parents: 12244
diff changeset
879 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
880 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
881 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
882 } else {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
883 /* 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
884 *b++ = ',';
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
885 *b++ = ' ';
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
886 }
12415
6a77d1df56e2 (svn r16849) -Codechange: replace GetCargo() by CargoSpec::Get()
smatz <smatz@openttd.org>
parents: 12365
diff changeset
887 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
888 }
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
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
891 /* 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
892 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
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 *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
895
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
896 /* 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
897 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
898
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
899 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
900 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
901 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
902
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
903 /**
838e1d6a0321 (svn r12596) -Feature: show what cargos a station could be supplied with. Patch by Roujin.
rubidium <rubidium@openttd.org>
parents: 8831
diff changeset
904 * 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
905 * @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
906 * @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
907 * @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
908 * @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
909 * @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
910 * @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
911 * @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
912 */
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
913 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
914 {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
915 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
916 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
917 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
918 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
919 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
920 } 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
921 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
922 }
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
923 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
924 }
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
925
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
926 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
927 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
928
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
929 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
930 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
931 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
932 _thd.dirty &= ~1;
13027
c02d5e082def (svn r17525) -Cleanup: Remove SetWindowDirty(), it is completely covered by other functions already.
frosch <frosch@openttd.org>
parents: 13008
diff changeset
933 w->SetDirty();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
934 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
935 }
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 /* 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
938 * 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
939 * 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
940 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
941 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
942 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
943 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
944
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
945 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
946
9390
45c874394355 (svn r13301) -Fix [FS#1997]: resolve more MSVC 9 x64 warnings.
rubidium <rubidium@openttd.org>
parents: 9354
diff changeset
947 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
948 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
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 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
951 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
952 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
953 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
954 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
955
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
956 /* 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
957 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
958 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
959 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
960
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
961 /**
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
962 * 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
963 * 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
964 * @param tb Textbuf type to be changed
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
965 * @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
966 * @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
967 */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
968 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
969 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
970 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
971 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
972 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
973 } 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
974 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
975 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
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
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
978 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
979 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
980
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
981 /**
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
982 * Delete every character in the textbuffer
6481
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
983 * @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
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 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
986 {
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
987 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
988 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
989 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
990 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
991
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
992 /**
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
993 * 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
994 * 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
995 * length of the string
6481
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
996 * @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
997 * @param key Character to be inserted
7372
694c7b595661 (svn r10736) -Fix: Correct all mispellings of 'successful'.
peter1138 <peter1138@openttd.org>
parents: 7346
diff changeset
998 * @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
999 */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1000 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
1001 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1002 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
1003 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
1004 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
1005 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
1006 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
1007 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
1008 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
1009
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1010 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
1011 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
1012 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
1013 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1014 return false;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1015 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1016
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1017 /**
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1018 * 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
1019 * 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
1020 * @param tb Textbuf type where navigation occurs
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
1021 * @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
1022 * @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
1023 */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1024 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
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 switch (navmode) {
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1027 case WKC_LEFT:
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1028 if (tb->caretpos != 0) {
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1029 WChar c;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1030 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
1031 Utf8Decode(&c, s);
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1032 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
1033 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
1034
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1035 return true;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1036 }
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1037 break;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1038
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1039 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
1040 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
1041 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
1042
9390
45c874394355 (svn r13301) -Fix [FS#1997]: resolve more MSVC 9 x64 warnings.
rubidium <rubidium@openttd.org>
parents: 9354
diff changeset
1043 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
1044 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
1045
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1046 return true;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1047 }
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1048 break;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1049
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1050 case WKC_HOME:
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1051 tb->caretpos = 0;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1052 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
1053 return true;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1054
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1055 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
1056 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
1057 tb->caretxoffs = tb->width;
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1058 return true;
8819
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1059
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1060 default:
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1061 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
1062 }
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 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
1065 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1066
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1067 /**
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1068 * 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
1069 * 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
1070 * @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
1071 * @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
1072 * @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
1073 * @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
1074 * 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
1075 * 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
1076 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
1077 {
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
1078 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
1079
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
1080 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
1081 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
1082 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
1083 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
1084 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
1085 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1086
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1087 /**
6481
85a1a79387a2 (svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents: 6453
diff changeset
1088 * 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
1089 * 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
1090 * 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
1091 * @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
1092 */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1093 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
1094 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1095 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
1096
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1097 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
1098 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
1099
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
1100 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
1101 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
1102 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
1103 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
1104 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1105
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
1106 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
1107
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
1108 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
1109 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
1110 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1111
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1112 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
1113 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1114 /* 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
1115 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
1116
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1117 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
1118 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
1119 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
1120 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1121 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
1122 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1123
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
1124 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
1125 {
12103
eecff8281292 (svn r16516) -Codechange: Added click and drag handling for nested widgets.
alberth <alberth@openttd.org>
parents: 12080
diff changeset
1126 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
1127 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
1128 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
1129 (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
1130 }
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
1131
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10276
diff changeset
1132 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
1133 {
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
1134 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
1135
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
1136 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
1137
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1138 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
1139 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
1140
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10276
diff changeset
1141 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
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 case (WKC_CTRL | 'V'):
13034
6eb3f749890a (svn r17532) -Codechange: Rename several Invalidate functions to SetDirty for more consistency and distinguishability.
frosch <frosch@openttd.org>
parents: 13030
diff changeset
1144 if (InsertTextBufferClipboard(&this->text)) w->SetWidgetDirty(wid);
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
1145 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
1146
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1147 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
1148 DeleteTextBufferAll(&this->text);
13034
6eb3f749890a (svn r17532) -Codechange: Rename several Invalidate functions to SetDirty for more consistency and distinguishability.
frosch <frosch@openttd.org>
parents: 13030
diff changeset
1149 w->SetWidgetDirty(wid);
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
1150 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
1151
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1152 case WKC_BACKSPACE: case WKC_DELETE:
13034
6eb3f749890a (svn r17532) -Codechange: Rename several Invalidate functions to SetDirty for more consistency and distinguishability.
frosch <frosch@openttd.org>
parents: 13030
diff changeset
1153 if (DeleteTextBufferChar(&this->text, keycode)) w->SetWidgetDirty(wid);
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
1154 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
1155
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1156 case WKC_LEFT: case WKC_RIGHT: case WKC_END: case WKC_HOME:
13034
6eb3f749890a (svn r17532) -Codechange: Rename several Invalidate functions to SetDirty for more consistency and distinguishability.
frosch <frosch@openttd.org>
parents: 13030
diff changeset
1157 if (MoveTextBufferPos(&this->text, keycode)) w->SetWidgetDirty(wid);
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
1158 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
1159
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1160 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
1161 if (IsValidChar(key, this->afilter)) {
13034
6eb3f749890a (svn r17532) -Codechange: Rename several Invalidate functions to SetDirty for more consistency and distinguishability.
frosch <frosch@openttd.org>
parents: 13030
diff changeset
1162 if (InsertTextBufferChar(&this->text, key)) w->SetWidgetDirty(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
1163 } 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
1164 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
1165 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1166 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1167
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10276
diff changeset
1168 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
1169 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1170
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
1171 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
1172 {
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
1173 if (HasEditBoxFocus(w, wid) && HandleCaret(&this->text)) {
13034
6eb3f749890a (svn r17532) -Codechange: Rename several Invalidate functions to SetDirty for more consistency and distinguishability.
frosch <frosch@openttd.org>
parents: 13030
diff changeset
1174 w->SetWidgetDirty(wid);
10934
76f750feb4fc (svn r15273) -Fix: OSK of the chat did not update the caret graphics
rubidium <rubidium@openttd.org>
parents: 10816
diff changeset
1175 /* 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
1176 * 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
1177 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
1178 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
1179 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
1180 }
76f750feb4fc (svn r15273) -Fix: OSK of the chat did not update the caret graphics
rubidium <rubidium@openttd.org>
parents: 10816
diff changeset
1181 }
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
1182 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1183
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1184 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
1185 {
13008
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1186 int left;
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1187 int right;
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1188 int top;
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1189 int bottom;
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1190 if (w->widget == NULL) {
13072
75bd67594af2 (svn r17572) -Codechange: Use the Window::GetWidget() function to access nested widgets through the nested_array.
alberth <alberth@openttd.org>
parents: 13063
diff changeset
1191 const NWidgetBase *wi = w->GetWidget<NWidgetBase>(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
1192
13008
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1193 assert((wi->type & WWT_MASK) == WWT_EDITBOX);
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
1194
13008
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1195 left = wi->pos_x;
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1196 right = wi->pos_x + wi->current_x - 1;
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1197 top = wi->pos_y;
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1198 bottom = wi->pos_y + wi->current_y - 1;
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1199 } else {
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1200 const Widget *wi = &w->widget[wid];
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
1201
13008
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1202 assert((wi->type & WWT_MASK) == WWT_EDITBOX);
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1203
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1204 left = wi->left;
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1205 right = wi->right;
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1206 top = wi->top;
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1207 bottom = wi->bottom;
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1208 }
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1209
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1210 GfxFillRect(left + 1, top + 1, right - 1, bottom - 1, 215);
8819
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1211
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1212 /* Limit the drawing of the string inside the widget boundaries */
13008
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1213 DrawPixelInfo dpi;
13118
cf2b48d0ea33 (svn r17620) -Fix (r17502): edit box offsets were off. Now they're still off, but look (in my opinion) even better than before
rubidium <rubidium@openttd.org>
parents: 13096
diff changeset
1214 if (!FillDrawPixelInfo(&dpi, left + WD_FRAMERECT_LEFT, top + WD_FRAMERECT_TOP, right - left - WD_FRAMERECT_RIGHT, bottom - top - WD_FRAMERECT_BOTTOM)) 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
1215
8819
98ec34b70edd (svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents: 8809
diff changeset
1216 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
1217 _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
1218
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1219 /* 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
1220 * 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
1221 const Textbuf *tb = &this->text;
13008
3abc6651764b (svn r17502) -Codechange [FS#3184]: Extend QueryStringBaseWindow to support windows with nested widgets (by Terkhen with a few tweaks).
alberth <alberth@openttd.org>
parents: 12946
diff changeset
1222 int delta = min(0, (right - left) - tb->width - 10);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1223
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1224 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
1225
11436
caf4456fbbf3 (svn r15794) -Codechange: remove the DoDrawString part of the old text drawing API
rubidium <rubidium@openttd.org>
parents: 11429
diff changeset
1226 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
1227 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
1228 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
1229 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
1230 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1231
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1232 _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
1233 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1234
10563
2271e0ee2758 (svn r14820) -Codechange: use (the correct) enum-type instead of just int (Zuu)
rubidium <rubidium@openttd.org>
parents: 10547
diff changeset
1235 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
1236 {
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
1237 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
1238 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1239
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1240 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
1241 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
1243 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
1246 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
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
10547
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1250 void QueryStringBaseWindow::OnOpenOSKWindow(int wid)
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1251 {
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1252 ShowOnScreenKeyboard(this, wid, 0, 0);
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1253 }
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1254
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1255 enum QueryStringWidgets {
11652
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1256 QUERY_STR_WIDGET_CLOSEBOX,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1257 QUERY_STR_WIDGET_CAPTION,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1258 QUERY_STR_WIDGET_BACKGROUND,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1259 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
1260 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
1261 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
1262 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
1263 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1264
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1265
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
1266 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
1267 {
9916
fa925e28f10e (svn r14069) -Fix: silence MSVC 64-bits compile warnings.
rubidium <rubidium@openttd.org>
parents: 9897
diff changeset
1268 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
1269 {
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
1270 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
1271 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
1272
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1273 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
1274 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1275
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
1276 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
1277 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1278 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
1279 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
1280
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
1281 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
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
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
1284 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
1285 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1286 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
1287 /* 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
1288 * 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
1289 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
1290 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
1291 } 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
1292 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
1293 }
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
1294 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
1295 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1296 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1297
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
1298 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
1299 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1300 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
1301 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
1302 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
1303 /* 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
1304 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
1305 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
1306 /* 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
1307 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
1308 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
1309 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
1310 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1311 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1312
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1313 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
1314 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1315 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
1316 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1317
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
1318 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
1319 {
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
1320 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
1321 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
1322 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
1323 case HEBR_EDITING: {
9399
617011acf06f (svn r13310) -Fix: invalidate OSK when parent editbox changes (from keyboard)
smatz <smatz@openttd.org>
parents: 9394
diff changeset
1324 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
1325 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
1326 } break;
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10276
diff changeset
1327 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
1328 /* 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
1329 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
1330 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
1331 }
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
1332 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
1333 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1334
10547
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1335 virtual void OnOpenOSKWindow(int wid)
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1336 {
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1337 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
1338 }
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10533
diff changeset
1339
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
1340 ~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
1341 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1342 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
1343 Window *parent = this->parent;
aeff7240b474 (svn r13304) -Fix (r13042): possible double free (showed up in r13092)
smatz <smatz@openttd.org>
parents: 9390
diff changeset
1344 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
1345 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
1346 }
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
1347 }
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
1348 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1349
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1350 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
1351 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_BLACK_CROSS, STR_TOOLTIP_CLOSE_WINDOW}, // QUERY_STR_WIDGET_CLOSEBOX
12821
9c5779a4ca5d (svn r17311) -Change: rename STR_WHITE_STRINGN to STR_WHITE_STRING
yexo <yexo@openttd.org>
parents: 12820
diff changeset
1352 { WWT_CAPTION, RESIZE_NONE, COLOUR_GREY, 11, 259, 0, 13, STR_WHITE_STRING, 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
1353 { 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
1354 { 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
1355 { 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
1356 { 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
1357 { 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
1358 { 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
1359 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1360
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
1361 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
1362 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
1363 NWidget(WWT_CLOSEBOX, COLOUR_GREY, QUERY_STR_WIDGET_CLOSEBOX),
12821
9c5779a4ca5d (svn r17311) -Change: rename STR_WHITE_STRINGN to STR_WHITE_STRING
yexo <yexo@openttd.org>
parents: 12820
diff changeset
1364 NWidget(WWT_CAPTION, COLOUR_GREY, QUERY_STR_WIDGET_CAPTION), SetDataTip(STR_WHITE_STRING, 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
1365 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
1366 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
1367 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
1368 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
1369 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
1370 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
1371 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
1372 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
1373 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
1374 };
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
1375
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
1376 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
1377 190, 219, 260, 42, 260, 42,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5750
diff changeset
1378 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
1379 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
1380 _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
1381 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1382
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1383 /** 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
1384 * @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
1385 * @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
1386 * @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
1387 * @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
1388 * @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
1389 * 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
1390 * @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
1391 * @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
1392 */
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
1393 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
1394 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1395 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
1396
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
1397 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
1398
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
1399 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
1400 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
1401
10145
dbe302da93a8 (svn r14331) -Codechange: use an enum as additional parameter for ShowQueryString()
smatz <smatz@openttd.org>
parents: 10039
diff changeset
1402 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
1403
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
1404 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
1405 /* 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
1406 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
1407 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
1408 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
1409 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
1410 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
1411 }
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
1412
7997
d109780d515b (svn r11555) -Codechange: use the new members introduced in r11551.
rubidium <rubidium@openttd.org>
parents: 7954
diff changeset
1413 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
1414 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
1415 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
1416 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
1417 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1418
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1419
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1420 enum QueryWidgets {
11652
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1421 QUERY_WIDGET_CLOSEBOX,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1422 QUERY_WIDGET_CAPTION,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1423 QUERY_WIDGET_BACKGROUND,
f175ab1cccea (svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents: 11644
diff changeset
1424 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
1425 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
1426 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1427
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1428 /**
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1429 * 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
1430 */
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1431 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
1432 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
1433 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
1434 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
1435
9319
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1436 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
1437 {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1438 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
1439 this->parent = parent;
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1440 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
1441 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
1442
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1443 /* 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
1444 * 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
1445 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
1446 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
1447 this->message = message;
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1448 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
1449
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
1450 this->FindWindowPlacementAndResize(desc);
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1451 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1452
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1453 ~QueryWindow()
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1454 {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1455 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
1456 }
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1457
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1458 virtual void OnPaint()
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1459 {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1460 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
1461 this->DrawWidgets();
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1462 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
1463
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
1464 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
1465 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1466
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1467 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
1468 {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1469 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
1470 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
1471 /* 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
1472 * 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
1473 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
1474 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
1475 /* 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
1476 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
1477 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
1478 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
1479 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
1480 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
1481 }
9319
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1482 } break;
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1483 case QUERY_WIDGET_NO:
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1484 delete this;
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1485 break;
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1486 }
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
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
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
1489 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
1490 {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1491 /* 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
1492 switch (keycode) {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1493 case WKC_RETURN:
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1494 case WKC_NUM_ENTER:
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1495 if (this->proc != NULL) {
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1496 this->proc(this->parent, true);
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1497 this->proc = NULL;
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1498 }
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1499 /* Fallthrough */
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1500 case WKC_ESC:
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1501 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
1502 return ES_HANDLED;
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1503 }
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
1504 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
1505 }
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1506 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1507
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1508
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1509 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
1510 { 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
1511 { 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
1512 { 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
1513 {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
1514 {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
1515 { 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
1516 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1517
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
1518 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
1519 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
1520 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
1521 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
1522 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
1523 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
1524 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
1525 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
1526 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
1527 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
1528 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
1529 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
1530 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
1531 };
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
1532
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
1533 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
1534 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
1535 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
1536 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
1537 _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
1538 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1539
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1540 /** 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
1541 * 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
1542 * 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
1543 * @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
1544 * @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
1545 * @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
1546 * 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
1547 * @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
1548 */
9319
7c3d6f855380 (svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents: 9317
diff changeset
1549 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
1550 {
9176
0f495f0a0c53 (svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents: 9170
diff changeset
1551 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
1552 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1553
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1554
11862
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1555 enum SaveLoadWindowWidgets {
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1556 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
1557 SLWW_WINDOWTITLE,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1558 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
1559 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
1560 SLWW_BACKGROUND,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1561 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
1562 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
1563 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
1564 SLWW_SCROLLBAR,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1565 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
1566 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
1567 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
1568 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
1569 SLWW_RESIZE,
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1570 };
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1571
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1572 static const Widget _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
1573 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_BLACK_CROSS, STR_TOOLTIP_CLOSE_WINDOW}, // SLWW_CLOSE
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1574 { WWT_CAPTION, RESIZE_RIGHT, COLOUR_GREY, 11, 256, 0, 13, STR_NULL, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS}, // SLWW_WINDOWTITLE
12856
6bcfe63f1bae (svn r17348) -Fix: don't mix 'sort by' strings used for buttons and dropdowns
smatz <smatz@openttd.org>
parents: 12834
diff changeset
1575 { WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_GREY, 0, 127, 14, 25, STR_SORT_BY_CAPTION_NAME, STR_TOOLTIP_SORT_ORDER}, // SLWW_SORT_BYNAME
6bcfe63f1bae (svn r17348) -Fix: don't mix 'sort by' strings used for buttons and dropdowns
smatz <smatz@openttd.org>
parents: 12834
diff changeset
1576 { WWT_PUSHTXTBTN, RESIZE_RIGHT, COLOUR_GREY, 128, 256, 14, 25, STR_SORT_BY_CAPTION_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
1577 { WWT_PANEL, RESIZE_RIGHT, COLOUR_GREY, 0, 256, 26, 47, 0x0, STR_NULL}, // SLWW_BACKGROUND
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1578 { WWT_PANEL, RESIZE_RB, COLOUR_GREY, 0, 256, 48, 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
1579 { WWT_PUSHIMGBTN, RESIZE_LR, COLOUR_GREY, 245, 256, 48, 59, SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON}, // SLWW_HOME_BUTTON
6e085df38529 (svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents: 11852
diff changeset
1580 { WWT_INSET, RESIZE_RB, COLOUR_GREY, 2, 243, 50, 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
1581 { 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
1582 { 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
1583 { 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
1584 { 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
1585 { WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 0, 0, 0x0, STR_NULL}, // SLWW_SAVE_GAME
12856
6bcfe63f1bae (svn r17348) -Fix: don't mix 'sort by' strings used for buttons and dropdowns
smatz <smatz@openttd.org>
parents: 12834
diff changeset
1586 { 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
1587 { WIDGETS_END},
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1588 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1589
11865
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1590 static const NWidgetPart _nested_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
1591 NWidget(NWID_LAYERED),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1592 NWidget(NWID_VERTICAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1593 NWidget(NWID_HORIZONTAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1594 NWidget(WWT_CLOSEBOX, COLOUR_GREY, SLWW_CLOSE),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1595 NWidget(WWT_CAPTION, COLOUR_GREY, SLWW_WINDOWTITLE),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1596 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1597 NWidget(NWID_HORIZONTAL),
12856
6bcfe63f1bae (svn r17348) -Fix: don't mix 'sort by' strings used for buttons and dropdowns
smatz <smatz@openttd.org>
parents: 12834
diff changeset
1598 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYNAME), SetMinimalSize(128, 12), SetDataTip(STR_SORT_BY_CAPTION_NAME, STR_TOOLTIP_SORT_ORDER),
6bcfe63f1bae (svn r17348) -Fix: don't mix 'sort by' strings used for buttons and dropdowns
smatz <smatz@openttd.org>
parents: 12834
diff changeset
1599 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYDATE), SetMinimalSize(129, 12), SetDataTip(STR_SORT_BY_CAPTION_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
1600 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1601 NWidget(WWT_PANEL, COLOUR_GREY, SLWW_BACKGROUND), SetMinimalSize(257, 22), SetResize(1, 0), EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1602 NWidget(WWT_PANEL, COLOUR_GREY, SLWW_FILE_BACKGROUND),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1603 NWidget(NWID_HORIZONTAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1604 NWidget(NWID_VERTICAL),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1605 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
1606 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
1607 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
1608 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
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(NWID_VERTICAL),
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_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
1612 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
1613 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
1614 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1615 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1616 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1617 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1618 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
1619 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
1620 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
1621 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
1622 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
1623 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
1624 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1625 NWidget(NWID_SPACER), SetFill(true, false), SetResize(1, 0),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1626 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1627 NWidget(NWID_SPACER), SetFill(true, true), SetResize(1, 1),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1628 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1629 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1630 };
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1631
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1632 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
1633 { 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
1634 { WWT_CAPTION, RESIZE_RIGHT, COLOUR_GREY, 11, 256, 0, 13, STR_NULL, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS}, // SLWW_WINDOWTITLE
12856
6bcfe63f1bae (svn r17348) -Fix: don't mix 'sort by' strings used for buttons and dropdowns
smatz <smatz@openttd.org>
parents: 12834
diff changeset
1635 { WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_GREY, 0, 127, 14, 25, STR_SORT_BY_CAPTION_NAME, STR_TOOLTIP_SORT_ORDER}, // SLWW_SORT_BYNAME
6bcfe63f1bae (svn r17348) -Fix: don't mix 'sort by' strings used for buttons and dropdowns
smatz <smatz@openttd.org>
parents: 12834
diff changeset
1636 { WWT_PUSHTXTBTN, RESIZE_RIGHT, COLOUR_GREY, 128, 256, 14, 25, STR_SORT_BY_CAPTION_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
1637 { 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
1638 { 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
1639 { 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
1640 { 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
1641 { 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
1642 { WWT_EMPTY, RESIZE_NONE, COLOUR_GREY, 0, 0, 0, 0, 0x0, STR_NULL}, // SLWW_CONTENT_DOWNLOAD
12856
6bcfe63f1bae (svn r17348) -Fix: don't mix 'sort by' strings used for buttons and dropdowns
smatz <smatz@openttd.org>
parents: 12834
diff changeset
1643 { 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
1644 { 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
1645 { WWT_PUSHTXTBTN, RESIZE_RTB, COLOUR_GREY, 128, 244, 168, 179, STR_SAVELOAD_SAVE_BUTTON, STR_SAVELOAD_SAVE_TOOLTIP}, // SLWW_SAVE_GAME
12856
6bcfe63f1bae (svn r17348) -Fix: don't mix 'sort by' strings used for buttons and dropdowns
smatz <smatz@openttd.org>
parents: 12834
diff changeset
1646 { 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
1647 { 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
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
11865
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1650 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
1651 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
1652 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
1653 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
1654 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
1655 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
1656 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1657 NWidget(NWID_HORIZONTAL),
12856
6bcfe63f1bae (svn r17348) -Fix: don't mix 'sort by' strings used for buttons and dropdowns
smatz <smatz@openttd.org>
parents: 12834
diff changeset
1658 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYNAME), SetMinimalSize(128, 12), SetDataTip(STR_SORT_BY_CAPTION_NAME, STR_TOOLTIP_SORT_ORDER),
6bcfe63f1bae (svn r17348) -Fix: don't mix 'sort by' strings used for buttons and dropdowns
smatz <smatz@openttd.org>
parents: 12834
diff changeset
1659 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYDATE), SetMinimalSize(129, 12), SetDataTip(STR_SORT_BY_CAPTION_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
1660 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1661 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
1662 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
1663 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
1664 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
1665 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
1666 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
1667 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
1668 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
1669 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1670 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1671 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
1672 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
1673 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1674 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
1675 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
1676 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
1677 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
1678 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
1679 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
1680 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1681 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1682 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
1683 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
1684 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
1685 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
1686 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1687 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
1688 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1689 EndContainer(),
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1690 };
a8d788b2bbd2 (svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents: 11864
diff changeset
1691
11085
8da1855e9f14 (svn r15428) -Codechange: consistently use colour instead of having both color and colour.
rubidium <rubidium@openttd.org>
parents: 11081
diff changeset
1692 /* 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
1693 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
1694 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
1695 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
1696 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1697
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
1698 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
1699 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1700 _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
1701 FiosFreeSavegameList();
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 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
1704 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
1705 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
1706 case SLD_SAVE_SCENARIO:
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1707 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
1708 case SLD_LOAD_HEIGHTMAP:
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1709 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
1710
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1711 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
1712 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1713 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1714
11480
88683778e6e5 (svn r15841) -Fix: the saveload window could draw directory partly outside the window
rubidium <rubidium@openttd.org>
parents: 11450
diff changeset
1715 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
1716 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1717 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
1718 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
1719 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
1720
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1721 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
1722 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
1723 _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
1724 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1725
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
1726 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
1727 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
1728 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
1729 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1730
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
1731 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
1732 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1733 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
1734 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
1735
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1736 /* 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
1737 * 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
1738 * 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
1739 */
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1740 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
1741 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
1742 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
1743 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
1744 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
1745 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
1746 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1747 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1748
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1749 uint s_amount = _fios_items.Length() - sort_start - sort_end;
13030
12fa346326b0 (svn r17528) -Codechange: use QSortT instead of qsort for sorting FiosItems
rubidium <rubidium@openttd.org>
parents: 13027
diff changeset
1750 QSortT(_fios_items.Get(sort_start), s_amount, CompareFiosItems);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1751 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1752
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
1753 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
1754
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
1755 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
1756 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
1757 FiosItem o_dir;
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1758 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
1759
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1760 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
1761 {
10533
53a8506c2079 (svn r14790) -Codechange: unify generation of default savegame/screenshot names (PhilSophus)
rubidium <rubidium@openttd.org>
parents: 10499
diff changeset
1762 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
1763 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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
9897
5b558ce6cb0e (svn r14046) -Codechange: make the size of querystring "widgets" more configurable.
rubidium <rubidium@openttd.org>
parents: 9790
diff changeset
1765 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
1766 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
1768 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
1769 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
1770 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
1771 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
1772 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
1773 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1774
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12867
diff changeset
1775 this->vscroll.SetCapacity(10);
11352
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1776 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
1777 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
1778
11702
cdaad565efe5 (svn r16088) -Codechange: merge HighLightStyle and ViewportHighlightMode as they are basically the same thing
rubidium <rubidium@openttd.org>
parents: 11653
diff changeset
1779 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
1780
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 /* 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
1782 * 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
1783 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
1784 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
1785 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
1786 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
1787 break;
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1788
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1789 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
1790 case SLD_LOAD_HEIGHTMAP:
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12867
diff changeset
1791 this->vscroll.UpdateCapacity(-1);
11352
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1792
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
1793 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
1794 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
1795 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
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
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
1799
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1800 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
1801 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
1802
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1803 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
1804 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
1805
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
1806 /* 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
1807 * 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
1808 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
1809 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
1810 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
1813
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
1815
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
1816 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
1817 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
1818 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
1819 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
1820 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
1821 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
1822
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1823 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
1824 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
1825 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
1826 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
1827
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
1828 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
1829 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
1830 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
1831
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 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
1833 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
1834 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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
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
1836 /* 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
1837 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
1838 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
1839 }
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
1840
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
1841 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
1842 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1843
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1844 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
1845 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 /* 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
1847 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
1848 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
1849 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
1851 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1852
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 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
1854 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
1856
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12867
diff changeset
1857 this->vscroll.SetCount(_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
1858 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
1859 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
1860
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1861 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
1862 _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
1863 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
1864 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1865
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1866 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
1867 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
1868 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
1869
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1870 y = widg->top + 1;
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12867
diff changeset
1871 for (uint pos = this->vscroll.GetPosition(); pos < _fios_items.Length(); pos++) {
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1872 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
1873
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
1874 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
1875 y += 10;
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12867
diff changeset
1876 if (y >= this->vscroll.GetCapacity() * 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
1877 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1878
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1879 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
1880 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
1881 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1882 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1883
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1884 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
1885 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1886 switch (widget) {
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1887 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
1888 _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
1889 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
1890 _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
1891 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
1892 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1893
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1894 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
1895 _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
1896 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
1897 _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
1898 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
1899 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1900
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1901 case SLWW_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
1902 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
1903 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
1904 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
1905 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1906
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1907 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
1908 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
1909
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12867
diff changeset
1910 if (y < 0 || (y += this->vscroll.GetPosition()) >= this->vscroll.GetCount()) return;
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
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
1912 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
1913
11256
f63c1d69ed92 (svn r15605) -Codechange: constify a function
rubidium <rubidium@openttd.org>
parents: 11230
diff changeset
1914 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
1915 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
1916 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
1917 _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
1918
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
1920 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
1921 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
1922
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 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
1924 } 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
1925 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
1926 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
1927 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
1928
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1929 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
1930 ShowHeightmapLoad();
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1931 } 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
1932 /* 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
1933 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
1934 UpdateTextBufferSize(&this->text);
13034
6eb3f749890a (svn r17532) -Codechange: Rename several Invalidate functions to SetDirty for more consistency and distinguishability.
frosch <frosch@openttd.org>
parents: 13030
diff changeset
1935 this->SetWidgetDirty(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
1936 }
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
1937 } 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
1938 /* 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
1939 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
1940 BuildFileList();
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1941 }
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 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
1943 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1944
11352
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1945 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
1946 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
1947 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
1948 } else {
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1949 #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
1950 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
1951 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
1952 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
1953 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
1954 }
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1955 #endif
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1956 }
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1957 break;
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1958
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1959 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
1960 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
1961 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1962 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1963
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
1964 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
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 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
1967 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
1968 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1969 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1970
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
1971 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
1972 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1973 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
1974 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
1975 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
1976 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1977
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
1978 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
1979 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
1980 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
1981 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
1982 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1983
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
1984 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
1985 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1986
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
1987 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
1988 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1989 /* 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
1990 * 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
1991 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
1992
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
1993 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
1994 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
1995 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
1996 } 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
1997 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
1998 /* 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
1999 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
2000 }
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
2001
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
2002 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
2003 this->SetDirty();
10944
0f460411415a (svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents: 10934
diff changeset
2004 } 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
2005 _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
2006 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
2007
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2008 /* 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
2009 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
2010 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2011 }
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
2012
11524
420a4f0b4e0b (svn r15885) -Codechange: Removed new_size parameter of Window::OnResize() callback
alberth <alberth@openttd.org>
parents: 11482
diff changeset
2013 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
2014 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 /* 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
2016 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
2017 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
2018 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
2019
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 /* 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
2021 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
2022 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
2023 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
2024 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12867
diff changeset
2026 this->vscroll.UpdateCapacity(delta.y / 10);
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 }
11352
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
2028
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
2029 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
2030 {
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
2031 BuildFileList();
62978bce3c1c (svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
2032 }
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
2033 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2034
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
2035 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
2036 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
2037 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
2038 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
2039 _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
2040 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2041
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
2042 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
2043 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
2044 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
2045 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
2046 _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
2047 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2048
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
2049 /** 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
2050 * 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
2051 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
2052 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
2053 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
2054 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
2055 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
2056 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
2057 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
2058 };
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
2059
8149
ad7ddb6150dc (svn r11711) -Codechange: Name the Save Load Dialog Mode enum
belugas <belugas@openttd.org>
parents: 8144
diff changeset
2060 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
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 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
2063
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
2064 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
2065 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
2066 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
2067 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
2068 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
2069 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
2070 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
2071 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2072
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
2073 _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
2074 _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
2075
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
2076 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
2077 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2078
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6239
diff changeset
2079 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
2080 {
13034
6eb3f749890a (svn r17532) -Codechange: Rename several Invalidate functions to SetDirty for more consistency and distinguishability.
frosch <frosch@openttd.org>
parents: 13030
diff changeset
2081 SetWindowDirty(WC_STATUS_BAR, 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
2082 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2083
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2084 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
2085 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2086 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
2087 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
2088 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
2089 _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
2090 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2091
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2092 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
2093 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
2094 _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
2095 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2096
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2097 #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
2098 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
2099 _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
2100 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2101 #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
2102
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2103 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
2104 _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
2105 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2106
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2107 default:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2108 _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
2109 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2110 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2111 }