Mercurial > hg > openttd
annotate src/misc_gui.cpp @ 14450:94d7ee68af4e draft
(svn r19007) -Prepare: 1.0.0-beta4
author | rubidium <rubidium@openttd.org> |
---|---|
date | Thu, 04 Feb 2010 17:11:46 +0000 (2010-02-04) |
parents | ccb369c0139e |
children | 572fca58be2d |
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" |
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
|
14 #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
|
15 #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
|
16 #include "saveload/saveload.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
|
17 #include "gui.h" |
8224
c45446125bf0
(svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium <rubidium@openttd.org>
parents:
8214
diff
changeset
|
18 #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
|
19 #include "gfx_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
|
20 #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
|
21 #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
|
22 #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
|
23 #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
|
24 #include "network/network_content.h" |
10960
a4e5b5d2837c
(svn r15299) -Cleanup: remove many redundant includes
smatz <smatz@openttd.org>
parents:
10944
diff
changeset
|
25 #include "company_base.h" |
a4e5b5d2837c
(svn r15299) -Cleanup: remove many redundant includes
smatz <smatz@openttd.org>
parents:
10944
diff
changeset
|
26 #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
|
27 #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
|
28 #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
|
29 #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
|
30 #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
|
31 #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
|
32 #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
|
33 #include "window_func.h" |
9127
428852b86d4d
(svn r12987) -Codechange: split viewport and tile selection.
rubidium <rubidium@openttd.org>
parents:
9116
diff
changeset
|
34 #include "tilehighlight_func.h" |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
35 #include "querystring_gui.h" |
14258
a899d4e5ee1a
(svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header
rubidium <rubidium@openttd.org>
parents:
14218
diff
changeset
|
36 #include "core/geometry_func.hpp" |
8119
b6ec923e9fa8
(svn r11680) -Codechange: refactor more out of openttd.h and functions.h.
rubidium <rubidium@openttd.org>
parents:
8116
diff
changeset
|
37 |
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
|
38 #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
|
39 |
13201
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
40 |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
41 /** |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
42 * Try to retrive the current clipboard contents. |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
43 * |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
44 * @note OS-specific funtion. |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
45 * @return True if some text could be retrived. |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
46 */ |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
47 bool GetClipboardContents(char *buffer, size_t buff_len); |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
48 |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
49 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
50 /* 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
|
51 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
|
52 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
53 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
54 static 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
|
55 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
|
56 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
|
57 |
11429
8a62e44e06a1
(svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents:
11427
diff
changeset
|
58 /** 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
|
59 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
|
60 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
|
61 }; |
8a62e44e06a1
(svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents:
11427
diff
changeset
|
62 |
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
|
63 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
|
64 NWidget(NWID_HORIZONTAL), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
65 NWidget(WWT_CLOSEBOX, COLOUR_GREY), |
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
66 NWidget(WWT_CAPTION, COLOUR_GREY), 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
|
67 EndContainer(), |
12834
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
68 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
|
69 }; |
50cfe1ce7e28
(svn r16033) -Codechange: Added nested widgets to about window, land-info window, and both query windows.
alberth <alberth@openttd.org>
parents:
11652
diff
changeset
|
70 |
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
|
71 static const WindowDesc _land_info_desc( |
13796
3e68f07eb821
(svn r18322) -Codechange: remove the WDP duplication; no need to tell the same twice.
rubidium <rubidium@openttd.org>
parents:
13792
diff
changeset
|
72 WDP_AUTO, 0, 0, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5750
diff
changeset
|
73 WC_LAND_INFO, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13705
diff
changeset
|
74 0, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13478
diff
changeset
|
75 _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
|
76 ); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
77 |
9155
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
78 class LandInfoWindow : public Window { |
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
79 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
|
80 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
|
81 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
|
82 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
|
83 |
9155
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
84 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
|
85 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
86 |
9155
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
87 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
|
88 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
|
89 |
9170
8c020e980b8c
(svn r13033) -Fix [FS#2003](r13029): land info tool wasn't working
smatz <smatz@openttd.org>
parents:
9166
diff
changeset
|
90 virtual void OnPaint() |
9155
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
91 { |
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
|
92 this->DrawWidgets(); |
12834
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
93 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
94 |
12834
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
95 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
|
96 { |
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
97 if (widget != LIW_BACKGROUND) return; |
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
98 |
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
99 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
|
100 for (uint i = 0; i < LAND_INFO_CENTERED_LINES; i++) { |
9572
7c23a341f695
(svn r13601) -Codechange: resize the Tile Info window when it is needed, make it better readable
smatz <smatz@openttd.org>
parents:
9441
diff
changeset
|
101 if (StrEmpty(this->landinfo_data[i])) break; |
9322
258ab31489e0
(svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents:
9319
diff
changeset
|
102 |
12834
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
103 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
|
104 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
|
105 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
|
106 } |
258ab31489e0
(svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents:
9319
diff
changeset
|
107 |
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
|
108 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
|
109 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
|
110 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
|
111 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
112 } |
9155
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
113 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
114 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
12834
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
115 { |
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
116 if (widget != LIW_BACKGROUND) return; |
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
117 |
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
118 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
|
119 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
|
120 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
|
121 |
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
122 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
|
123 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
|
124 |
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
125 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
|
126 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
|
127 } |
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
128 |
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
129 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
|
130 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
|
131 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
|
132 SetDParamStr(0, this->landinfo_data[LAND_INFO_MULTICENTER_LINE]); |
13683
42f82bcae40e
(svn r18208) -Fix [FS#3321]: in some cases the size of the land information window wasn't properly calculated
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
133 size->height += GetStringHeight(STR_JUST_RAW_STRING, size->width - WD_FRAMETEXT_LEFT - WD_FRAMETEXT_RIGHT); |
12834
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 |
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
137 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
|
138 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
|
139 |
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
140 /* 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
|
141 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
|
142 |
9713
c94f47f48e76
(svn r13826) -Codechange: use 'INVALID_DATE' instead of '0' as placeholder in tile description
smatz <smatz@openttd.org>
parents:
9693
diff
changeset
|
143 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
|
144 |
258ab31489e0
(svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents:
9319
diff
changeset
|
145 /* 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
|
146 * - 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
|
147 * - 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
|
148 */ |
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
|
149 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
|
150 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
|
151 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
|
152 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
|
153 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
|
154 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
|
155 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
|
156 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
|
157 |
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
|
158 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
|
159 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
|
160 |
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 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
|
162 |
12261
c42d8d239142
(svn r16676) -Codechange: Rename AcceptedCargo to CargoArray and its instances to more meaningful names.
frosch <frosch@openttd.org>
parents:
12244
diff
changeset
|
163 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
|
164 AddAcceptedCargo(tile, acceptance, NULL); |
9155
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
165 GetTileDesc(tile, &td); |
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
166 |
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
|
167 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
|
168 |
258ab31489e0
(svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents:
9319
diff
changeset
|
169 /* Tiletype */ |
9155
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
170 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
|
171 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
|
172 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
|
173 |
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
|
174 /* 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
|
175 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
|
176 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
|
177 |
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
|
178 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
|
179 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
|
180 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
|
181 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
|
182 } |
258ab31489e0
(svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents:
9319
diff
changeset
|
183 |
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
|
184 /* 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
|
185 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
|
186 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
|
187 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
|
188 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
|
189 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
|
190 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
|
191 c->money = old_money; |
14314
60d313b887b8
(svn r18866) -Codechange: remove the CmdFailed(ret)/CmdSucceeded(ret) wrapper functions
rubidium <rubidium@openttd.org>
parents:
14258
diff
changeset
|
192 if (costclear.Succeeded()) { |
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
|
193 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
|
194 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
|
195 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
|
196 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
|
197 } 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
|
198 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
|
199 } |
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
|
200 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
|
201 } |
9155
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
202 } |
9322
258ab31489e0
(svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents:
9319
diff
changeset
|
203 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
|
204 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
|
205 |
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
|
206 /* 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
|
207 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
|
208 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
|
209 SetDParam(0, TileX(tile)); |
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
210 SetDParam(1, TileY(tile)); |
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
211 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
|
212 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
|
213 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
|
214 line_nr++; |
9155
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
215 |
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
|
216 /* 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
|
217 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
|
218 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
|
219 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
|
220 SetDParam(1, t->index); |
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
221 } |
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
|
222 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
|
223 line_nr++; |
9155
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
224 |
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
|
225 /* 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
|
226 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
|
227 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
|
228 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
|
229 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
|
230 } |
258ab31489e0
(svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents:
9319
diff
changeset
|
231 |
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
|
232 /* 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
|
233 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
|
234 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
|
235 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
|
236 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
|
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 |
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 /* 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
|
240 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
|
241 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
|
242 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
|
243 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
|
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 |
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 /* 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
|
247 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
|
248 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
|
249 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
|
250 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
|
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 |
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 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
|
254 |
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
|
255 /* 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
|
256 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
|
257 |
258ab31489e0
(svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window.
frosch <frosch@openttd.org>
parents:
9319
diff
changeset
|
258 /* 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
|
259 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
|
260 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
|
261 |
9155
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
262 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
|
263 if (acceptance[i] > 0) { |
9155
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
264 /* 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
|
265 if (found) { |
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 *strp++ = ' '; |
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
268 } |
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
269 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
|
270 |
9155
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
271 /* 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
|
272 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
|
273 SetDParam(0, acceptance[i]); |
12415
6a77d1df56e2
(svn r16849) -Codechange: replace GetCargo() by CargoSpec::Get()
smatz <smatz@openttd.org>
parents:
12365
diff
changeset
|
274 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
|
275 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
|
276 } else { |
12415
6a77d1df56e2
(svn r16849) -Codechange: replace GetCargo() by CargoSpec::Get()
smatz <smatz@openttd.org>
parents:
12365
diff
changeset
|
277 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
|
278 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
279 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
280 } |
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
|
281 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
|
282 |
12834
f828651d0be0
(svn r17324) -Codechange: Land info window uses nested widget tree
Yexo <Yexo@openttd.org>
parents:
12821
diff
changeset
|
283 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
|
284 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
285 #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
|
286 # 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
|
287 #else |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
288 # 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
|
289 #endif |
9155
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
290 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
|
291 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
|
292 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
|
293 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
|
294 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
|
295 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
|
296 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
|
297 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
|
298 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
|
299 #undef LANDINFOD_LEVEL |
9155
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 |
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
303 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
|
304 { |
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
305 DeleteWindowById(WC_LAND_INFO, 0); |
bb7dd4c8ed68
(svn r13018) -Codechange: make a class of the LandInfo Window.
rubidium <rubidium@openttd.org>
parents:
9153
diff
changeset
|
306 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
|
307 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
308 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
6239
diff
changeset
|
309 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
|
310 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
311 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
|
312 ResetObjectToPlace(); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
313 } else { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
314 _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
|
315 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
|
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 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
318 |
11429
8a62e44e06a1
(svn r15787) -Codechange: enumify the land info and about window widgets and use them.
rubidium <rubidium@openttd.org>
parents:
11427
diff
changeset
|
319 /** 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
|
320 enum AboutWidgets { |
13670
2e7ff39e2ec6
(svn r18195) -Codechange: move the child padding calculation/handling to WWT_FRAME
rubidium <rubidium@openttd.org>
parents:
13647
diff
changeset
|
321 AW_SCROLLING_TEXT, ///< The actually scrolling text |
12820
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
322 AW_WEBSITE, ///< URL of OpenTTD website |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
323 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
324 |
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
|
325 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
|
326 NWidget(NWID_HORIZONTAL), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
327 NWidget(WWT_CLOSEBOX, COLOUR_GREY), |
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
328 NWidget(WWT_CAPTION, COLOUR_GREY), 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
|
329 EndContainer(), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
330 NWidget(WWT_PANEL, COLOUR_GREY), SetPIP(4, 2, 4), |
13797
5a6ed547542b
(svn r18323) -Fix [FS#3330]: credits were drawn on the border of the window
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
331 NWidget(WWT_LABEL, COLOUR_GREY), SetDataTip(STR_ABOUT_ORIGINAL_COPYRIGHT, STR_NULL), |
5a6ed547542b
(svn r18323) -Fix [FS#3330]: credits were drawn on the border of the window
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
332 NWidget(WWT_LABEL, COLOUR_GREY), SetDataTip(STR_ABOUT_VERSION, STR_NULL), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
333 NWidget(WWT_FRAME, COLOUR_GREY), SetPadding(0, 5, 1, 5), |
13670
2e7ff39e2ec6
(svn r18195) -Codechange: move the child padding calculation/handling to WWT_FRAME
rubidium <rubidium@openttd.org>
parents:
13647
diff
changeset
|
334 NWidget(WWT_EMPTY, INVALID_COLOUR, AW_SCROLLING_TEXT), |
2e7ff39e2ec6
(svn r18195) -Codechange: move the child padding calculation/handling to WWT_FRAME
rubidium <rubidium@openttd.org>
parents:
13647
diff
changeset
|
335 EndContainer(), |
13797
5a6ed547542b
(svn r18323) -Fix [FS#3330]: credits were drawn on the border of the window
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
336 NWidget(WWT_LABEL, COLOUR_GREY, AW_WEBSITE), SetDataTip(STR_BLACK_RAW_STRING, STR_NULL), |
5a6ed547542b
(svn r18323) -Fix [FS#3330]: credits were drawn on the border of the window
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
337 NWidget(WWT_LABEL, COLOUR_GREY), 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
|
338 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
|
339 }; |
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
|
340 |
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
|
341 static const WindowDesc _about_desc( |
13796
3e68f07eb821
(svn r18322) -Codechange: remove the WDP duplication; no need to tell the same twice.
rubidium <rubidium@openttd.org>
parents:
13792
diff
changeset
|
342 WDP_CENTER, 0, 0, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5750
diff
changeset
|
343 WC_GAME_OPTIONS, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13705
diff
changeset
|
344 0, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13478
diff
changeset
|
345 _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
|
346 ); |
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 |
13096
e3e4c1648e0c
(svn r17596) -Codechange: constify some tables
smatz <smatz@openttd.org>
parents:
13072
diff
changeset
|
348 static const char * const _credits[] = { |
12820
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
349 "Original design by Chris Sawyer", |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
350 "Original graphics by Simon Foster", |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
351 "", |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
352 "The OpenTTD team (in alphabetical order):", |
13587
f5704f568df1
(svn r18111) -Change: One more developer added to the history of OpenTTD.
alberth <alberth@openttd.org>
parents:
13580
diff
changeset
|
353 " Albert Hofkamp (Alberth) - GUI expert", |
14450
94d7ee68af4e
(svn r19007) -Prepare: 1.0.0-beta4
rubidium <rubidium@openttd.org>
parents:
14441
diff
changeset
|
354 " Jean-Fran\xC3\xA7ois Claeys (Belugas) - GUI, newindustries and more", |
12820
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
355 " 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
|
356 " Christoph Elsenhans (frosch) - General coding", |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
357 " 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
|
358 " 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
|
359 " Owen Rudge (orudge) - Forum host, OS/2 port", |
14441
ccb369c0139e
(svn r18998) -Update: the credits
rubidium <rubidium@openttd.org>
parents:
14409
diff
changeset
|
360 " Peter Nelson (peter1138) - Spiritual descendant from NewGRF gods", |
12820
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
361 " 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
|
362 " Zden\xC4\x9Bk Sojka (SmatZ) - Bug finder and fixer", |
14441
ccb369c0139e
(svn r18998) -Update: the credits
rubidium <rubidium@openttd.org>
parents:
14409
diff
changeset
|
363 " Jos\xC3\xA9 Soler (Terkhen) - General coding", |
12820
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
364 " Thijs Marinussen (Yexo) - AI Framework", |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
365 "", |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
366 "Inactive Developers:", |
14441
ccb369c0139e
(svn r18998) -Update: the credits
rubidium <rubidium@openttd.org>
parents:
14409
diff
changeset
|
367 " Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles", |
ccb369c0139e
(svn r18998) -Update: the credits
rubidium <rubidium@openttd.org>
parents:
14409
diff
changeset
|
368 " Victor Fischer (Celestar) - Programming everywhere you need him to", |
12820
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
369 " 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
|
370 " 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
|
371 " 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
|
372 " 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
|
373 " 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
|
374 "", |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
375 "Retired Developers:", |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
376 " 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
|
377 " 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
|
378 " 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
|
379 " 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
|
380 " 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
|
381 "", |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
382 "Special thanks go out to:", |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
383 " 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
|
384 " 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
|
385 " 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
|
386 " 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
|
387 " 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
|
388 " 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
|
389 " Christian Rosentreter (tokai) - MorphOS / AmigaOS port", |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
390 " 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
|
391 "", |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
392 " 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
|
393 " 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
|
394 " 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
|
395 " 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
|
396 " David Dallaston - Tram tracks", |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
397 " 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
|
398 " 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
|
399 " 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
|
400 "", |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
401 "", |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
402 "And last but not least:", |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
403 " Chris Sawyer - For an amazing game!" |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
404 }; |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
405 |
9227
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
406 struct AboutWindow : public Window { |
12820
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
407 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
|
408 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
|
409 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
|
410 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
|
411 |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
412 AboutWindow() : Window() |
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 this->InitNested(&_about_desc); |
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->counter = 5; |
13670
2e7ff39e2ec6
(svn r18195) -Codechange: move the child padding calculation/handling to WWT_FRAME
rubidium <rubidium@openttd.org>
parents:
13647
diff
changeset
|
417 this->text_position = this->GetWidget<NWidgetBase>(AW_SCROLLING_TEXT)->pos_y + this->GetWidget<NWidgetBase>(AW_SCROLLING_TEXT)->current_y; |
12820
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
418 } |
9227
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
419 |
12820
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
420 virtual void SetStringParameters(int widget) const |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
421 { |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
422 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
|
423 } |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
424 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
425 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
9227
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
426 { |
13670
2e7ff39e2ec6
(svn r18195) -Codechange: move the child padding calculation/handling to WWT_FRAME
rubidium <rubidium@openttd.org>
parents:
13647
diff
changeset
|
427 if (widget != AW_SCROLLING_TEXT) return; |
12820
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
428 |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
429 this->line_height = FONT_HEIGHT_NORMAL; |
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 Dimension d; |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
432 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
|
433 |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
434 d.width = 0; |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
435 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
|
436 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
|
437 } |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
438 *size = maxdim(*size, d); |
9227
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
439 } |
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
440 |
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
441 virtual void OnPaint() |
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
442 { |
12820
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
443 this->DrawWidgets(); |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
444 } |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
445 |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
446 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
|
447 { |
13670
2e7ff39e2ec6
(svn r18195) -Codechange: move the child padding calculation/handling to WWT_FRAME
rubidium <rubidium@openttd.org>
parents:
13647
diff
changeset
|
448 if (widget != AW_SCROLLING_TEXT) return; |
9227
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
449 |
12820
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
450 int y = this->text_position; |
9227
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
451 |
12820
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
452 /* Show all scrolling _credits */ |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
453 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
|
454 if (y >= r.top + 7 && y < r.bottom - this->line_height) { |
13670
2e7ff39e2ec6
(svn r18195) -Codechange: move the child padding calculation/handling to WWT_FRAME
rubidium <rubidium@openttd.org>
parents:
13647
diff
changeset
|
455 DrawString(r.left, r.right, y, _credits[i], TC_BLACK, SA_LEFT | SA_FORCE); |
9227
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
456 } |
12820
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
457 y += this->line_height; |
9227
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
458 } |
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
459 } |
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
460 |
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
461 virtual void OnTick() |
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 if (--this->counter == 0) { |
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
464 this->counter = 5; |
12820
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
465 this->text_position--; |
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
466 /* If the last text has scrolled start a new from the start */ |
13670
2e7ff39e2ec6
(svn r18195) -Codechange: move the child padding calculation/handling to WWT_FRAME
rubidium <rubidium@openttd.org>
parents:
13647
diff
changeset
|
467 if (this->text_position < (int)(this->GetWidget<NWidgetBase>(AW_SCROLLING_TEXT)->pos_y - lengthof(_credits) * this->line_height)) { |
2e7ff39e2ec6
(svn r18195) -Codechange: move the child padding calculation/handling to WWT_FRAME
rubidium <rubidium@openttd.org>
parents:
13647
diff
changeset
|
468 this->text_position = this->GetWidget<NWidgetBase>(AW_SCROLLING_TEXT)->pos_y + this->GetWidget<NWidgetBase>(AW_SCROLLING_TEXT)->current_y; |
12820
a8612d0074e8
(svn r17310) -Codechange: about window uses nested widget tree
yexo <yexo@openttd.org>
parents:
12819
diff
changeset
|
469 } |
9227
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
470 this->SetDirty(); |
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
471 } |
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
472 } |
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
473 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
474 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
6239
diff
changeset
|
475 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
|
476 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
477 DeleteWindowById(WC_GAME_OPTIONS, 0); |
9227
35dbb597e9fd
(svn r13093) -Codechange: make a class of AboutWindow.
glx <glx@openttd.org>
parents:
9226
diff
changeset
|
478 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
|
479 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
480 |
11793
e11bc207c6e2
(svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents:
11792
diff
changeset
|
481 /** 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
|
482 enum ErrorMessageWidgets { |
e11bc207c6e2
(svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents:
11792
diff
changeset
|
483 EMW_CAPTION, |
e11bc207c6e2
(svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents:
11792
diff
changeset
|
484 EMW_FACE, |
e11bc207c6e2
(svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents:
11792
diff
changeset
|
485 EMW_MESSAGE, |
e11bc207c6e2
(svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents:
11792
diff
changeset
|
486 }; |
e11bc207c6e2
(svn r16183) -Fix [FS#2872]: wrong string alignment for error messages with face
rubidium <rubidium@openttd.org>
parents:
11792
diff
changeset
|
487 |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
488 static const NWidgetPart _nested_errmsg_widgets[] = { |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
489 NWidget(NWID_HORIZONTAL), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
490 NWidget(WWT_CLOSEBOX, COLOUR_RED), |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
491 NWidget(WWT_CAPTION, COLOUR_RED, EMW_CAPTION), SetDataTip(STR_ERROR_MESSAGE_CAPTION, STR_NULL), |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
492 EndContainer(), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
493 NWidget(WWT_PANEL, COLOUR_RED), |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
494 NWidget(WWT_EMPTY, COLOUR_RED, EMW_MESSAGE), SetPadding(0, 2, 0, 2), SetMinimalSize(236, 32), |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
495 EndContainer(), |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
496 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
497 |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
498 static const WindowDesc _errmsg_desc( |
13798
6f820ae12bb3
(svn r18324) -Codechange: there's no need for a default size when the window isn't resizable
rubidium <rubidium@openttd.org>
parents:
13797
diff
changeset
|
499 WDP_MANUAL, 0, 0, |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
500 WC_ERRMSG, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13705
diff
changeset
|
501 0, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13478
diff
changeset
|
502 _nested_errmsg_widgets, lengthof(_nested_errmsg_widgets) |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
503 ); |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
504 |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
505 static const NWidgetPart _nested_errmsg_face_widgets[] = { |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
506 NWidget(NWID_HORIZONTAL), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
507 NWidget(WWT_CLOSEBOX, COLOUR_RED), |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
508 NWidget(WWT_CAPTION, COLOUR_RED, EMW_CAPTION), SetDataTip(STR_ERROR_MESSAGE_CAPTION_OTHER_COMPANY, STR_NULL), |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
509 EndContainer(), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
510 NWidget(WWT_PANEL, COLOUR_RED), |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
511 NWidget(NWID_HORIZONTAL), SetPIP(2, 1, 2), |
14105
14b88fb5751d
(svn r18652) -Fix: glitches due to having the wrong bounding boxes for the face widgets
rubidium <rubidium@openttd.org>
parents:
14089
diff
changeset
|
512 NWidget(WWT_EMPTY, COLOUR_RED, EMW_FACE), SetMinimalSize(92, 119), SetFill(0, 1), SetPadding(2, 0, 1, 0), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13683
diff
changeset
|
513 NWidget(WWT_EMPTY, COLOUR_RED, EMW_MESSAGE), SetFill(0, 1), SetMinimalSize(238, 123), |
11837
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 EndContainer(), |
f32d9dd80187
(svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents:
11793
diff
changeset
|
516 }; |
f32d9dd80187
(svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents:
11793
diff
changeset
|
517 |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
518 static const WindowDesc _errmsg_face_desc( |
13798
6f820ae12bb3
(svn r18324) -Codechange: there's no need for a default size when the window isn't resizable
rubidium <rubidium@openttd.org>
parents:
13797
diff
changeset
|
519 WDP_MANUAL, 0, 0, |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
520 WC_ERRMSG, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13705
diff
changeset
|
521 0, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13478
diff
changeset
|
522 _nested_errmsg_face_widgets, lengthof(_nested_errmsg_face_widgets) |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
523 ); |
11837
f32d9dd80187
(svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents:
11793
diff
changeset
|
524 |
13412
c4c8d177431a
(svn r17921) -Documentation: Add doxygen comments in the ErrmsgWindow struct.
alberth <alberth@openttd.org>
parents:
13410
diff
changeset
|
525 /** Window class for displaying an error message window. */ |
9265
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
526 struct ErrmsgWindow : public Window { |
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
527 private: |
13412
c4c8d177431a
(svn r17921) -Documentation: Add doxygen comments in the ErrmsgWindow struct.
alberth <alberth@openttd.org>
parents:
13410
diff
changeset
|
528 uint duration; ///< Length of display of the message. 0 means forever, |
c4c8d177431a
(svn r17921) -Documentation: Add doxygen comments in the ErrmsgWindow struct.
alberth <alberth@openttd.org>
parents:
13410
diff
changeset
|
529 uint64 decode_params[20]; ///< Parameters of the message strings. |
13419
ddfb6a69b9c3
(svn r17928) -Codechange: ShowErrorMessage() now takes the summary string before the details string.
alberth <alberth@openttd.org>
parents:
13418
diff
changeset
|
530 StringID summary_msg; ///< General error message showed in first line. Must be valid. |
13418
a05425167e89
(svn r17927) -Codechange: Rename error message string variables.
alberth <alberth@openttd.org>
parents:
13415
diff
changeset
|
531 StringID detailed_msg; ///< Detailed error message showed in second line. Can be #INVALID_STRING_ID. |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
532 uint height_summary; ///< Height of the #summary_msg string in pixels in the #EMW_MESSAGE widget. |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
533 uint height_detailed; ///< Height of the #detailed_msg string in pixels in the #EMW_MESSAGE widget. |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
534 Point position; ///< Position of the error message window. |
9682
ed50c006a790
(svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents:
9659
diff
changeset
|
535 |
9265
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
536 public: |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
537 ErrmsgWindow(Point pt, const WindowDesc *desc, StringID summary_msg, StringID detailed_msg, bool no_timeout) : Window() |
9265
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
538 { |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
539 this->position = pt; |
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
|
540 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
|
541 CopyOutDParam(this->decode_params, 0, lengthof(this->decode_params)); |
13419
ddfb6a69b9c3
(svn r17928) -Codechange: ShowErrorMessage() now takes the summary string before the details string.
alberth <alberth@openttd.org>
parents:
13418
diff
changeset
|
542 this->summary_msg = summary_msg; |
13418
a05425167e89
(svn r17927) -Codechange: Rename error message string variables.
alberth <alberth@openttd.org>
parents:
13415
diff
changeset
|
543 this->detailed_msg = detailed_msg; |
9682
ed50c006a790
(svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents:
9659
diff
changeset
|
544 |
13418
a05425167e89
(svn r17927) -Codechange: Rename error message string variables.
alberth <alberth@openttd.org>
parents:
13415
diff
changeset
|
545 assert(summary_msg != INVALID_STRING_ID); |
9682
ed50c006a790
(svn r13787) -Codechange: resize the red error message box if needed
smatz <smatz@openttd.org>
parents:
9659
diff
changeset
|
546 |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
547 this->InitNested(desc); |
9265
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
548 } |
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
549 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
550 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
9265
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
551 { |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
552 if (widget != EMW_MESSAGE) return; |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
553 |
9265
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
554 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
|
555 /* 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
|
556 * 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
|
557 */ |
9265
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
558 SwitchToErrorRefStack(); |
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
559 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
|
560 |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
561 int text_width = max(0, (int)size->width - WD_FRAMETEXT_LEFT - WD_FRAMETEXT_RIGHT); |
13426
52ba7aa7628d
(svn r17935) -Fix (r17933): Compensate for being inside a class.
alberth <alberth@openttd.org>
parents:
13424
diff
changeset
|
562 this->height_summary = GetStringHeight(this->summary_msg, text_width); |
52ba7aa7628d
(svn r17935) -Fix (r17933): Compensate for being inside a class.
alberth <alberth@openttd.org>
parents:
13424
diff
changeset
|
563 this->height_detailed = (this->detailed_msg == INVALID_STRING_ID) ? 0 : GetStringHeight(this->detailed_msg, text_width); |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
564 |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
565 SwitchToNormalRefStack(); // Switch back to the normal text ref. stack for NewGRF texts. |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
566 |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
567 uint panel_height = WD_FRAMERECT_TOP + this->height_summary + WD_FRAMERECT_BOTTOM; |
13426
52ba7aa7628d
(svn r17935) -Fix (r17933): Compensate for being inside a class.
alberth <alberth@openttd.org>
parents:
13424
diff
changeset
|
568 if (this->detailed_msg != INVALID_STRING_ID) panel_height += this->height_detailed + WD_PAR_VSEP_WIDE; |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
569 |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
570 size->height = max(size->height, panel_height); |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
571 } |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
572 |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
573 virtual Point OnInitialPosition(const WindowDesc *desc, int16 sm_width, int16 sm_height, int window_number) |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
574 { |
13424
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
575 /* Position (0, 0) given, center the window. */ |
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
576 if (this->position.x == 0 && this->position.y == 0) { |
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
577 Point pt = {(_screen.width - sm_width) >> 1, (_screen.height - sm_height) >> 1}; |
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
578 return pt; |
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
579 } |
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
580 |
13478
d0e25c1f205e
(svn r17997) -Codechange: Introduce functions for querying top and bottom of the main view.
alberth <alberth@openttd.org>
parents:
13466
diff
changeset
|
581 /* Find the free screen space between the main toolbar at the top, and the statusbar at the bottom. |
13431
80d05eb53cfa
(svn r17940) -Codechange: Use real y position of the main toolbar and status bar instead of hardcoded sizes for tooltip and for error message windows.
alberth <alberth@openttd.org>
parents:
13426
diff
changeset
|
582 * Add a fixed distance 20 to make it less cluttered. |
80d05eb53cfa
(svn r17940) -Codechange: Use real y position of the main toolbar and status bar instead of hardcoded sizes for tooltip and for error message windows.
alberth <alberth@openttd.org>
parents:
13426
diff
changeset
|
583 */ |
13478
d0e25c1f205e
(svn r17997) -Codechange: Introduce functions for querying top and bottom of the main view.
alberth <alberth@openttd.org>
parents:
13466
diff
changeset
|
584 int scr_top = GetMainViewTop() + 20; |
d0e25c1f205e
(svn r17997) -Codechange: Introduce functions for querying top and bottom of the main view.
alberth <alberth@openttd.org>
parents:
13466
diff
changeset
|
585 int scr_bot = GetMainViewBottom() - 20; |
13431
80d05eb53cfa
(svn r17940) -Codechange: Use real y position of the main toolbar and status bar instead of hardcoded sizes for tooltip and for error message windows.
alberth <alberth@openttd.org>
parents:
13426
diff
changeset
|
586 |
13424
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
587 Point pt = RemapCoords2(this->position.x, this->position.y); |
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
588 const ViewPort *vp = FindWindowById(WC_MAIN_WINDOW, 0)->viewport; |
13426
52ba7aa7628d
(svn r17935) -Fix (r17933): Compensate for being inside a class.
alberth <alberth@openttd.org>
parents:
13424
diff
changeset
|
589 if (this->detailed_msg != STR_ERROR_OWNED_BY || GetDParamX(this->decode_params, 2) >= MAX_COMPANIES) { |
13424
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
590 /* move x pos to opposite corner */ |
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
591 pt.x = UnScaleByZoom(pt.x - vp->virtual_left, vp->zoom) + vp->left; |
13431
80d05eb53cfa
(svn r17940) -Codechange: Use real y position of the main toolbar and status bar instead of hardcoded sizes for tooltip and for error message windows.
alberth <alberth@openttd.org>
parents:
13426
diff
changeset
|
592 pt.x = (pt.x < (_screen.width >> 1)) ? _screen.width - sm_width - 20 : 20; // Stay 20 pixels away from the edge of the screen. |
13424
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
593 |
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
594 /* move y pos to opposite corner */ |
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
595 pt.y = UnScaleByZoom(pt.y - vp->virtual_top, vp->zoom) + vp->top; |
13431
80d05eb53cfa
(svn r17940) -Codechange: Use real y position of the main toolbar and status bar instead of hardcoded sizes for tooltip and for error message windows.
alberth <alberth@openttd.org>
parents:
13426
diff
changeset
|
596 pt.y = (pt.y < (_screen.height >> 1)) ? scr_bot - sm_height : scr_top; |
13424
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
597 } else { |
13426
52ba7aa7628d
(svn r17935) -Fix (r17933): Compensate for being inside a class.
alberth <alberth@openttd.org>
parents:
13424
diff
changeset
|
598 pt.x = Clamp(UnScaleByZoom(pt.x - vp->virtual_left, vp->zoom) + vp->left - (sm_width / 2), 0, _screen.width - sm_width); |
13431
80d05eb53cfa
(svn r17940) -Codechange: Use real y position of the main toolbar and status bar instead of hardcoded sizes for tooltip and for error message windows.
alberth <alberth@openttd.org>
parents:
13426
diff
changeset
|
599 pt.y = Clamp(UnScaleByZoom(pt.y - vp->virtual_top, vp->zoom) + vp->top - (sm_height / 2), scr_top, scr_bot - sm_height); |
13424
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
600 } |
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
601 return pt; |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
602 } |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
603 |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
604 virtual void OnPaint() |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
605 { |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
606 this->DrawWidgets(); |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
607 } |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
608 |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
609 virtual void SetStringParameters(int widget) const |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
610 { |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
611 if (widget == EMW_CAPTION) CopyInDParam(0, this->decode_params, lengthof(this->decode_params)); |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
612 } |
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
|
613 |
13422
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
614 virtual void DrawWidget(const Rect &r, int widget) const |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
615 { |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
616 switch (widget) { |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
617 case EMW_FACE: { |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
618 const Company *c = Company::Get((CompanyID)GetDParamX(this->decode_params, 2)); |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
619 DrawCompanyManagerFace(c->face, c->colour, r.left, r.top); |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
620 break; |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
621 } |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
622 |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
623 case EMW_MESSAGE: |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
624 CopyInDParam(0, this->decode_params, lengthof(this->decode_params)); |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
625 SwitchToErrorRefStack(); |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
626 RewindTextRefStack(); |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
627 |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
628 if (this->detailed_msg == INVALID_STRING_ID) { |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
629 DrawStringMultiLine(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, r.top + WD_FRAMERECT_TOP, r.bottom - WD_FRAMERECT_BOTTOM, |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
630 this->summary_msg, TC_FROMSTRING, SA_CENTER); |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
631 } else { |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
632 int extra = (r.bottom - r.top + 1 - this->height_summary - this->height_detailed - WD_PAR_VSEP_WIDE) / 2; |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
633 |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
634 int top = r.top + WD_FRAMERECT_TOP; |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
635 int bottom = top + this->height_summary + extra; |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
636 DrawStringMultiLine(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, top, bottom, this->summary_msg, TC_FROMSTRING, SA_CENTER); |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
637 |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
638 bottom = r.bottom - WD_FRAMERECT_BOTTOM; |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
639 top = bottom - this->height_detailed - extra; |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
640 DrawStringMultiLine(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, top, bottom, this->detailed_msg, TC_FROMSTRING, SA_CENTER); |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
641 } |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
642 |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
643 SwitchToNormalRefStack(); // Switch back to the normal text ref. stack for NewGRF texts. |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
644 break; |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
645 |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
646 default: |
88d840d0eeb9
(svn r17931) -Codechange: Error message window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13419
diff
changeset
|
647 break; |
13415
65f20d71b375
(svn r17924) -Codechange: Replace y array with two area rectangles in the error message window.
alberth <alberth@openttd.org>
parents:
13412
diff
changeset
|
648 } |
9265
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
649 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
650 |
9265
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
651 virtual void OnMouseLoop() |
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
652 { |
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
|
653 /* 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
|
654 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
|
655 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
656 |
9265
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
657 virtual void OnHundredthTick() |
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
658 { |
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
|
659 /* 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
|
660 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
|
661 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
|
662 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
|
663 } |
9265
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
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 |
9265
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
666 ~ErrmsgWindow() |
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
667 { |
10816
35b3e8e25590
(svn r15151) -Fix: tile 0 can now be highlighted as error tile
Yexo <Yexo@openttd.org>
parents:
10771
diff
changeset
|
668 SetRedErrorSquare(INVALID_TILE); |
9265
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
669 extern StringID _switch_mode_errorstr; |
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
670 _switch_mode_errorstr = INVALID_STRING_ID; |
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
671 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
672 |
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
|
673 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
|
674 { |
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
|
675 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
|
676 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
|
677 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
|
678 } |
9265
746b863fafe6
(svn r13131) -Codechange: make a class of the ErrmsgWindow.
glx <glx@openttd.org>
parents:
9228
diff
changeset
|
679 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
680 |
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
|
681 /** |
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
|
682 * Display an error message in a window. |
13419
ddfb6a69b9c3
(svn r17928) -Codechange: ShowErrorMessage() now takes the summary string before the details string.
alberth <alberth@openttd.org>
parents:
13418
diff
changeset
|
683 * @param summary_msg General error message showed in first line. Must be valid. |
13418
a05425167e89
(svn r17927) -Codechange: Rename error message string variables.
alberth <alberth@openttd.org>
parents:
13415
diff
changeset
|
684 * @param detailed_msg Detailed error message showed in second line. Can be INVALID_STRING_ID. |
a05425167e89
(svn r17927) -Codechange: Rename error message string variables.
alberth <alberth@openttd.org>
parents:
13415
diff
changeset
|
685 * @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. |
a05425167e89
(svn r17927) -Codechange: Rename error message string variables.
alberth <alberth@openttd.org>
parents:
13415
diff
changeset
|
686 * @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. |
a05425167e89
(svn r17927) -Codechange: Rename error message string variables.
alberth <alberth@openttd.org>
parents:
13415
diff
changeset
|
687 * @param no_timeout Set to true, if the message is that important that it should not close automatically after some time. |
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
|
688 */ |
13419
ddfb6a69b9c3
(svn r17928) -Codechange: ShowErrorMessage() now takes the summary string before the details string.
alberth <alberth@openttd.org>
parents:
13418
diff
changeset
|
689 void ShowErrorMessage(StringID summary_msg, StringID detailed_msg, 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
|
690 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
691 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
|
692 |
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
|
693 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
|
694 |
13418
a05425167e89
(svn r17927) -Codechange: Rename error message string variables.
alberth <alberth@openttd.org>
parents:
13415
diff
changeset
|
695 if (summary_msg == STR_NULL) summary_msg = 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
|
696 |
13424
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
697 Point pt = {x, y}; |
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
698 const WindowDesc *desc = (detailed_msg != STR_ERROR_OWNED_BY || GetDParam(2) >= MAX_COMPANIES) ? &_errmsg_desc : &_errmsg_face_desc; |
3dd4ac4f5364
(svn r17933) -Codechange: Move position calculation of error message window into the class.
alberth <alberth@openttd.org>
parents:
13423
diff
changeset
|
699 new ErrmsgWindow(pt, desc, summary_msg, detailed_msg, 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
|
700 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
701 |
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
|
702 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
|
703 { |
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
|
704 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
|
705 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
706 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
|
707 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
|
708 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
|
709 } |
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
|
710 SetDParam(0, cost); |
13419
ddfb6a69b9c3
(svn r17928) -Codechange: ShowErrorMessage() now takes the summary string before the details string.
alberth <alberth@openttd.org>
parents:
13418
diff
changeset
|
711 ShowErrorMessage(msg, INVALID_STRING_ID, x, 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
|
712 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
713 |
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
|
714 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
|
715 { |
10642
29bc871ff8d1
(svn r14944) -Cleanup: add spaces around some operators
rubidium <rubidium@openttd.org>
parents:
10582
diff
changeset
|
716 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
|
717 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
|
718 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
719 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
|
720 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
|
721 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
|
722 } |
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
|
723 SetDParam(0, cost); |
14089
511acd6d8554
(svn r18636) -Codechange: make TextEffect::duration a value in ticks instead of ticks * 8
smatz <smatz@openttd.org>
parents:
14063
diff
changeset
|
724 AddTextEffect(msg, pt.x, pt.y, DAY_TICKS, 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
|
725 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
726 |
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
|
727 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
|
728 { |
10642
29bc871ff8d1
(svn r14944) -Cleanup: add spaces around some operators
rubidium <rubidium@openttd.org>
parents:
10582
diff
changeset
|
729 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
|
730 |
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
|
731 SetDParam(0, cost); |
14089
511acd6d8554
(svn r18636) -Codechange: make TextEffect::duration a value in ticks instead of ticks * 8
smatz <smatz@openttd.org>
parents:
14063
diff
changeset
|
732 AddTextEffect(STR_FEEDER, pt.x, pt.y, DAY_TICKS, TE_RISING); |
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
|
733 } |
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 |
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
|
735 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
|
736 { |
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
|
737 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
|
738 |
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
|
739 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
|
740 |
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
|
741 SetDParam(0, percent); |
14089
511acd6d8554
(svn r18636) -Codechange: make TextEffect::duration a value in ticks instead of ticks * 8
smatz <smatz@openttd.org>
parents:
14063
diff
changeset
|
742 return AddTextEffect(string, pt.x, pt.y, 0, 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
|
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 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
|
746 { |
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
|
747 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
|
748 |
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
|
749 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
|
750 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
|
751 } |
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
|
752 |
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
|
753 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
|
754 { |
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
|
755 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
|
756 |
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
|
757 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
|
758 *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
|
759 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
760 |
11837
f32d9dd80187
(svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents:
11793
diff
changeset
|
761 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
|
762 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
|
763 }; |
f32d9dd80187
(svn r16227) -Codechange: Added nested widgets for error windows, tooltip window, and dropdown window.
alberth <alberth@openttd.org>
parents:
11793
diff
changeset
|
764 |
13407
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
765 static const WindowDesc _tool_tips_desc( |
13796
3e68f07eb821
(svn r18322) -Codechange: remove the WDP duplication; no need to tell the same twice.
rubidium <rubidium@openttd.org>
parents:
13792
diff
changeset
|
766 WDP_MANUAL, 0, 0, // Coordinates and sizes are not used, |
13407
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
767 WC_TOOLTIPS, WC_NONE, |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
768 0, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13478
diff
changeset
|
769 _nested_tooltips_widgets, lengthof(_nested_tooltips_widgets) |
13407
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
770 ); |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
771 |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
772 /** Window for displaying a tooltip. */ |
9186
c5c545191a71
(svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents:
9179
diff
changeset
|
773 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
|
774 { |
13404
4f5e54adb480
(svn r17913) -Documentation: Add doxygen comments to the tooltip window class.
alberth <alberth@openttd.org>
parents:
13344
diff
changeset
|
775 StringID string_id; ///< String to display as tooltip. |
4f5e54adb480
(svn r17913) -Documentation: Add doxygen comments to the tooltip window class.
alberth <alberth@openttd.org>
parents:
13344
diff
changeset
|
776 byte paramcount; ///< Number of string parameters in #string_id. |
4f5e54adb480
(svn r17913) -Documentation: Add doxygen comments to the tooltip window class.
alberth <alberth@openttd.org>
parents:
13344
diff
changeset
|
777 uint64 params[5]; ///< The string parameters. |
4f5e54adb480
(svn r17913) -Documentation: Add doxygen comments to the tooltip window class.
alberth <alberth@openttd.org>
parents:
13344
diff
changeset
|
778 bool use_left_mouse_button; ///< Wait for left mouse button to close window (else, wait for right button). |
9186
c5c545191a71
(svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents:
9179
diff
changeset
|
779 |
13409
955895a91fe4
(svn r17918) -Codechange: Move tooltip size calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13408
diff
changeset
|
780 TooltipsWindow(StringID str, uint paramcount, const uint64 params[], bool use_left_mouse_button) : Window() |
9186
c5c545191a71
(svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents:
9179
diff
changeset
|
781 { |
c5c545191a71
(svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents:
9179
diff
changeset
|
782 this->string_id = str; |
12927
950767ea4ee5
(svn r17420) -Codechange: replace assert() by assert_compile() where possible
smatz <smatz@openttd.org>
parents:
12878
diff
changeset
|
783 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
|
784 assert(paramcount <= lengthof(this->params)); |
9186
c5c545191a71
(svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents:
9179
diff
changeset
|
785 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
|
786 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
|
787 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
|
788 |
13407
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
789 this->InitNested(&_tool_tips_desc); |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
790 |
9186
c5c545191a71
(svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents:
9179
diff
changeset
|
791 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
|
792 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
793 |
13407
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
794 virtual Point OnInitialPosition(const WindowDesc *desc, int16 sm_width, int16 sm_height, int window_number) |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
795 { |
13478
d0e25c1f205e
(svn r17997) -Codechange: Introduce functions for querying top and bottom of the main view.
alberth <alberth@openttd.org>
parents:
13466
diff
changeset
|
796 /* Find the free screen space between the main toolbar at the top, and the statusbar at the bottom. |
13431
80d05eb53cfa
(svn r17940) -Codechange: Use real y position of the main toolbar and status bar instead of hardcoded sizes for tooltip and for error message windows.
alberth <alberth@openttd.org>
parents:
13426
diff
changeset
|
797 * Add a fixed distance 2 so the tooltip floats free from both bars. |
80d05eb53cfa
(svn r17940) -Codechange: Use real y position of the main toolbar and status bar instead of hardcoded sizes for tooltip and for error message windows.
alberth <alberth@openttd.org>
parents:
13426
diff
changeset
|
798 */ |
13478
d0e25c1f205e
(svn r17997) -Codechange: Introduce functions for querying top and bottom of the main view.
alberth <alberth@openttd.org>
parents:
13466
diff
changeset
|
799 int scr_top = GetMainViewTop() + 2; |
d0e25c1f205e
(svn r17997) -Codechange: Introduce functions for querying top and bottom of the main view.
alberth <alberth@openttd.org>
parents:
13466
diff
changeset
|
800 int scr_bot = GetMainViewBottom() - 2; |
13431
80d05eb53cfa
(svn r17940) -Codechange: Use real y position of the main toolbar and status bar instead of hardcoded sizes for tooltip and for error message windows.
alberth <alberth@openttd.org>
parents:
13426
diff
changeset
|
801 |
13408
763cbbda43f0
(svn r17917) -Codechange: Move tooltip initial position calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13407
diff
changeset
|
802 Point pt; |
763cbbda43f0
(svn r17917) -Codechange: Move tooltip initial position calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13407
diff
changeset
|
803 |
763cbbda43f0
(svn r17917) -Codechange: Move tooltip initial position calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13407
diff
changeset
|
804 /* Correctly position the tooltip position, watch out for window and cursor size |
763cbbda43f0
(svn r17917) -Codechange: Move tooltip initial position calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13407
diff
changeset
|
805 * Clamp value to below main toolbar and above statusbar. If tooltip would |
763cbbda43f0
(svn r17917) -Codechange: Move tooltip initial position calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13407
diff
changeset
|
806 * go below window, flip it so it is shown above the cursor */ |
13431
80d05eb53cfa
(svn r17940) -Codechange: Use real y position of the main toolbar and status bar instead of hardcoded sizes for tooltip and for error message windows.
alberth <alberth@openttd.org>
parents:
13426
diff
changeset
|
807 pt.y = Clamp(_cursor.pos.y + _cursor.size.y + _cursor.offs.y + 5, scr_top, scr_bot); |
80d05eb53cfa
(svn r17940) -Codechange: Use real y position of the main toolbar and status bar instead of hardcoded sizes for tooltip and for error message windows.
alberth <alberth@openttd.org>
parents:
13426
diff
changeset
|
808 if (pt.y + sm_height > scr_bot) pt.y = min(_cursor.pos.y + _cursor.offs.y - 5, scr_bot) - sm_height; |
13408
763cbbda43f0
(svn r17917) -Codechange: Move tooltip initial position calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13407
diff
changeset
|
809 pt.x = Clamp(_cursor.pos.x - (sm_width >> 1), 0, _screen.width - sm_width); |
763cbbda43f0
(svn r17917) -Codechange: Move tooltip initial position calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13407
diff
changeset
|
810 |
763cbbda43f0
(svn r17917) -Codechange: Move tooltip initial position calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13407
diff
changeset
|
811 return pt; |
13407
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
812 } |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
813 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
814 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
9186
c5c545191a71
(svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents:
9179
diff
changeset
|
815 { |
13407
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
816 /* There is only one widget. */ |
13409
955895a91fe4
(svn r17918) -Codechange: Move tooltip size calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13408
diff
changeset
|
817 for (uint i = 0; i != this->paramcount; i++) SetDParam(i, this->params[i]); |
955895a91fe4
(svn r17918) -Codechange: Move tooltip size calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13408
diff
changeset
|
818 |
955895a91fe4
(svn r17918) -Codechange: Move tooltip size calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13408
diff
changeset
|
819 size->width = min(GetStringBoundingBox(this->string_id).width, 194); |
955895a91fe4
(svn r17918) -Codechange: Move tooltip size calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13408
diff
changeset
|
820 size->height = GetStringHeight(this->string_id, size->width); |
955895a91fe4
(svn r17918) -Codechange: Move tooltip size calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13408
diff
changeset
|
821 |
955895a91fe4
(svn r17918) -Codechange: Move tooltip size calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13408
diff
changeset
|
822 /* Increase slightly to have some space around the box. */ |
955895a91fe4
(svn r17918) -Codechange: Move tooltip size calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13408
diff
changeset
|
823 size->width += 2 + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT; |
955895a91fe4
(svn r17918) -Codechange: Move tooltip size calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13408
diff
changeset
|
824 size->height += 2 + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM; |
13407
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
825 } |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
826 |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
827 virtual void DrawWidget(const Rect &r, int widget) const |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
828 { |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
829 /* There is only one widget. */ |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
830 GfxFillRect(r.left, r.top, r.right, r.bottom, 0); |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
831 GfxFillRect(r.left + 1, r.top + 1, r.right - 1, r.bottom - 1, 0x44); |
9186
c5c545191a71
(svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents:
9179
diff
changeset
|
832 |
c5c545191a71
(svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents:
9179
diff
changeset
|
833 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
|
834 SetDParam(arg, this->params[arg]); |
c5c545191a71
(svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents:
9179
diff
changeset
|
835 } |
13407
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
836 DrawStringMultiLine(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + WD_FRAMERECT_TOP, r.bottom - WD_FRAMERECT_BOTTOM, this->string_id, TC_FROMSTRING, SA_CENTER); |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
837 } |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
838 |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
839 |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
840 virtual void OnPaint() |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
841 { |
dab0b75044af
(svn r17916) -Codechange: Make tooltips window use pure nested widgets.
alberth <alberth@openttd.org>
parents:
13405
diff
changeset
|
842 this->DrawWidgets(); |
9186
c5c545191a71
(svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents:
9179
diff
changeset
|
843 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
844 |
9186
c5c545191a71
(svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents:
9179
diff
changeset
|
845 virtual void OnMouseLoop() |
c5c545191a71
(svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents:
9179
diff
changeset
|
846 { |
c5c545191a71
(svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents:
9179
diff
changeset
|
847 /* 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
|
848 * 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
|
849 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
|
850 } |
9186
c5c545191a71
(svn r13049) -Codechange: make a class of the TooltipsWindow.
rubidium <rubidium@openttd.org>
parents:
9179
diff
changeset
|
851 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
852 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
853 /** Shows a tooltip |
6481
85a1a79387a2
(svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents:
6453
diff
changeset
|
854 * @param str String to be displayed |
85a1a79387a2
(svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents:
6453
diff
changeset
|
855 * @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
|
856 * @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
|
857 * @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
|
858 */ |
5ab8b1b156bb
(svn r13922) -Codechange: Move measurement-tooltip related stuff out of the general tooltip window.
frosch <frosch@openttd.org>
parents:
9752
diff
changeset
|
859 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
|
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 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
|
862 |
9781
5ab8b1b156bb
(svn r13922) -Codechange: Move measurement-tooltip related stuff out of the general tooltip window.
frosch <frosch@openttd.org>
parents:
9752
diff
changeset
|
863 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
|
864 |
13409
955895a91fe4
(svn r17918) -Codechange: Move tooltip size calculation into the tooltip window class.
alberth <alberth@openttd.org>
parents:
13408
diff
changeset
|
865 new TooltipsWindow(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
|
866 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
867 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
868 /* 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
|
869 * 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
|
870 * 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
|
871 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
|
872 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
873 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
|
874 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
|
875 |
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
|
876 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
|
877 |
9390
45c874394355
(svn r13301) -Fix [FS#1997]: resolve more MSVC 9 x64 warnings.
rubidium <rubidium@openttd.org>
parents:
9354
diff
changeset
|
878 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
|
879 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
|
880 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
881 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
|
882 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
|
883 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
|
884 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
|
885 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
886 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
887 /* 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
|
888 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
|
889 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
|
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 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
892 /** |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
893 * 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
|
894 * 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
|
895 * @param tb Textbuf type to be changed |
85a1a79387a2
(svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents:
6453
diff
changeset
|
896 * @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
|
897 * @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
|
898 */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
899 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
|
900 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
901 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
|
902 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
|
903 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
|
904 } 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
|
905 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
|
906 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
|
907 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
908 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
909 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
|
910 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
911 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
912 /** |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
913 * Delete every character in the textbuffer |
6481
85a1a79387a2
(svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents:
6453
diff
changeset
|
914 * @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
|
915 */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
916 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
|
917 { |
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
|
918 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
|
919 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
|
920 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
|
921 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
922 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
923 /** |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
924 * 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
|
925 * 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
|
926 * length of the string |
6481
85a1a79387a2
(svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents:
6453
diff
changeset
|
927 * @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
|
928 * @param key Character to be inserted |
7372
694c7b595661
(svn r10736) -Fix: Correct all mispellings of 'successful'.
peter1138 <peter1138@openttd.org>
parents:
7346
diff
changeset
|
929 * @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
|
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 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
|
932 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
933 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
|
934 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
|
935 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
|
936 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
|
937 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
|
938 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
|
939 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
|
940 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
941 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
|
942 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
|
943 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
|
944 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
945 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
|
946 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
947 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
948 /** |
13201
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
949 * Insert a chunk of text from the clipboard onto the textbuffer. Get TEXT clipboard |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
950 * and append this up to the maximum length (either absolute or screenlength). If maxlength |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
951 * is zero, we don't care about the screenlength but only about the physical length of the string |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
952 * @param tb Textbuf type to be changed |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
953 * @return true on successful change of Textbuf, or false otherwise |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
954 */ |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
955 bool InsertTextBufferClipboard(Textbuf *tb) |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
956 { |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
957 char utf8_buf[512]; |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
958 |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
959 if (!GetClipboardContents(utf8_buf, lengthof(utf8_buf))) return false; |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
960 |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
961 uint16 width = 0, length = 0; |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
962 WChar c; |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
963 for (const char *ptr = utf8_buf; (c = Utf8Consume(&ptr)) != '\0';) { |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
964 if (!IsPrintable(c)) break; |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
965 |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
966 byte len = Utf8CharLen(c); |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
967 if (tb->size + length + len > tb->maxsize) break; |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
968 |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
969 byte charwidth = GetCharacterWidth(FS_NORMAL, c); |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
970 if (tb->maxwidth != 0 && width + tb->width + charwidth > tb->maxwidth) break; |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
971 |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
972 width += charwidth; |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
973 length += len; |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
974 } |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
975 |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
976 if (length == 0) return false; |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
977 |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
978 memmove(tb->buf + tb->caretpos + length, tb->buf + tb->caretpos, tb->size - tb->caretpos); |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
979 memcpy(tb->buf + tb->caretpos, utf8_buf, length); |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
980 tb->width += width; |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
981 tb->caretxoffs += width; |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
982 |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
983 tb->size += length; |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
984 tb->caretpos += length; |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
985 assert(tb->size <= tb->maxsize); |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
986 tb->buf[tb->size - 1] = '\0'; // terminating zero |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
987 |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
988 return true; |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
989 } |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
990 |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
991 /** |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
992 * 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
|
993 * 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
|
994 * @param tb Textbuf type where navigation occurs |
85a1a79387a2
(svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents:
6453
diff
changeset
|
995 * @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
|
996 * @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
|
997 */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
998 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
|
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 switch (navmode) { |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1001 case WKC_LEFT: |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1002 if (tb->caretpos != 0) { |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1003 WChar c; |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1004 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
|
1005 Utf8Decode(&c, s); |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1006 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
|
1007 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
|
1008 |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1009 return true; |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1010 } |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1011 break; |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1012 |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1013 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
|
1014 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
|
1015 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
|
1016 |
9390
45c874394355
(svn r13301) -Fix [FS#1997]: resolve more MSVC 9 x64 warnings.
rubidium <rubidium@openttd.org>
parents:
9354
diff
changeset
|
1017 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
|
1018 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
|
1019 |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1020 return true; |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1021 } |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1022 break; |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1023 |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1024 case WKC_HOME: |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1025 tb->caretpos = 0; |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1026 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
|
1027 return true; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1028 |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1029 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
|
1030 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
|
1031 tb->caretxoffs = tb->width; |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1032 return true; |
8819
98ec34b70edd
(svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents:
8809
diff
changeset
|
1033 |
98ec34b70edd
(svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents:
8809
diff
changeset
|
1034 default: |
98ec34b70edd
(svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents:
8809
diff
changeset
|
1035 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
|
1036 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1037 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1038 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
|
1039 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1040 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1041 /** |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1042 * 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
|
1043 * 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
|
1044 * @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
|
1045 * @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
|
1046 * @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
|
1047 * @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
|
1048 * 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
|
1049 * 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
|
1050 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
|
1051 { |
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
|
1052 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
|
1053 |
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
|
1054 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
|
1055 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
|
1056 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
|
1057 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
|
1058 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
|
1059 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1060 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1061 /** |
6481
85a1a79387a2
(svn r9662) -Documentation: Doxygen corrections and @file omissions
belugas <belugas@openttd.org>
parents:
6453
diff
changeset
|
1062 * 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
|
1063 * 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
|
1064 * 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
|
1065 * @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
|
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 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
|
1068 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1069 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
|
1070 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1071 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
|
1072 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
|
1073 |
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 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
|
1075 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
|
1076 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
|
1077 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
|
1078 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1079 |
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
|
1080 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
|
1081 |
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->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
|
1083 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
|
1084 } |
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 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
|
1087 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1088 /* 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
|
1089 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
|
1090 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1091 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
|
1092 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
|
1093 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
|
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 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
|
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 |
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
|
1098 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
|
1099 { |
12103
eecff8281292
(svn r16516) -Codechange: Added click and drag handling for nested widgets.
alberth <alberth@openttd.org>
parents:
12080
diff
changeset
|
1100 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
|
1101 if (w->window_class != WC_OSK || _focused_window != w->parent) return false; |
13570
4a7574282ac8
(svn r18092) -Codechange: remove support for the unnested widgets
rubidium <rubidium@openttd.org>
parents:
13564
diff
changeset
|
1102 return 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
|
1103 } |
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
|
1104 |
10295
7ebf43f7c36b
(svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents:
10276
diff
changeset
|
1105 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
|
1106 { |
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
|
1107 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
|
1108 |
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
|
1109 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
|
1110 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1111 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
|
1112 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
|
1113 |
10295
7ebf43f7c36b
(svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents:
10276
diff
changeset
|
1114 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
|
1115 |
13201
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
1116 #ifdef WITH_COCOA |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
1117 case (WKC_META | 'V'): |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
1118 #endif |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1119 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
|
1120 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
|
1121 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
|
1122 |
13201
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
1123 #ifdef WITH_COCOA |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
1124 case (WKC_META | 'U'): |
4ebcd304709f
(svn r17708) -Feature [FS#2053]: [OSX] Implement clipboard support for OS X.
michi_cc <michi_cc@openttd.org>
parents:
13186
diff
changeset
|
1125 #endif |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1126 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
|
1127 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
|
1128 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
|
1129 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
|
1130 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1131 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
|
1132 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
|
1133 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
|
1134 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1135 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
|
1136 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
|
1137 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
|
1138 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1139 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
|
1140 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
|
1141 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
|
1142 } 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
|
1143 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
|
1144 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 |
10295
7ebf43f7c36b
(svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents:
10276
diff
changeset
|
1147 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
|
1148 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1149 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1151 { |
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
|
1152 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
|
1153 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
|
1154 /* 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
|
1155 * 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
|
1156 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
|
1157 Window *w_osk = FindWindowById(WC_OSK, 0); |
13169
1f44cefc7825
(svn r17674) -Codechange: replace SetDirty + OnInvalidateData with InvalidateData (which does the same). Also call InvalidateData in a few cases where that was actually meant.
rubidium <rubidium@openttd.org>
parents:
13163
diff
changeset
|
1158 if (w_osk != NULL && w_osk->parent == w) w_osk->InvalidateData(); |
10934
76f750feb4fc
(svn r15273) -Fix: OSK of the chat did not update the caret graphics
rubidium <rubidium@openttd.org>
parents:
10816
diff
changeset
|
1159 } |
76f750feb4fc
(svn r15273) -Fix: OSK of the chat did not update the caret graphics
rubidium <rubidium@openttd.org>
parents:
10816
diff
changeset
|
1160 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1162 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1163 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
|
1164 { |
13570
4a7574282ac8
(svn r18092) -Codechange: remove support for the unnested widgets
rubidium <rubidium@openttd.org>
parents:
13564
diff
changeset
|
1165 const NWidgetBase *wi = w->GetWidget<NWidgetBase>(wid); |
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
|
1166 |
13570
4a7574282ac8
(svn r18092) -Codechange: remove support for the unnested widgets
rubidium <rubidium@openttd.org>
parents:
13564
diff
changeset
|
1167 assert((wi->type & WWT_MASK) == WWT_EDITBOX); |
4a7574282ac8
(svn r18092) -Codechange: remove support for the unnested widgets
rubidium <rubidium@openttd.org>
parents:
13564
diff
changeset
|
1168 int left = wi->pos_x; |
4a7574282ac8
(svn r18092) -Codechange: remove support for the unnested widgets
rubidium <rubidium@openttd.org>
parents:
13564
diff
changeset
|
1169 int right = wi->pos_x + wi->current_x - 1; |
4a7574282ac8
(svn r18092) -Codechange: remove support for the unnested widgets
rubidium <rubidium@openttd.org>
parents:
13564
diff
changeset
|
1170 int top = wi->pos_y; |
4a7574282ac8
(svn r18092) -Codechange: remove support for the unnested widgets
rubidium <rubidium@openttd.org>
parents:
13564
diff
changeset
|
1171 int bottom = wi->pos_y + wi->current_y - 1; |
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
|
1172 |
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
|
1173 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
|
1174 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1175 /* 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
|
1176 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
|
1177 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
|
1178 |
8819
98ec34b70edd
(svn r12565) -Cleanup: variable scope in misc\*.cpp
smatz <smatz@openttd.org>
parents:
8809
diff
changeset
|
1179 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
|
1180 _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
|
1181 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1182 /* 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
|
1183 * 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
|
1184 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
|
1185 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
|
1186 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1187 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
|
1188 |
11436
caf4456fbbf3
(svn r15794) -Codechange: remove the DoDrawString part of the old text drawing API
rubidium <rubidium@openttd.org>
parents:
11429
diff
changeset
|
1189 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
|
1190 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
|
1191 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
|
1192 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
|
1193 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1194 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1195 _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
|
1196 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1197 |
10563
2271e0ee2758
(svn r14820) -Codechange: use (the correct) enum-type instead of just int (Zuu)
rubidium <rubidium@openttd.org>
parents:
10547
diff
changeset
|
1198 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
|
1199 { |
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
|
1200 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
|
1201 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1202 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1203 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
|
1204 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1205 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
|
1206 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1207 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1208 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
|
1209 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1210 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
|
1211 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1212 |
10547
0b7be1ee92c5
(svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents:
10533
diff
changeset
|
1213 void QueryStringBaseWindow::OnOpenOSKWindow(int wid) |
0b7be1ee92c5
(svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents:
10533
diff
changeset
|
1214 { |
0b7be1ee92c5
(svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents:
10533
diff
changeset
|
1215 ShowOnScreenKeyboard(this, wid, 0, 0); |
0b7be1ee92c5
(svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents:
10533
diff
changeset
|
1216 } |
0b7be1ee92c5
(svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents:
10533
diff
changeset
|
1217 |
13456
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1218 /** Widget of the string 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
|
1219 enum QueryStringWidgets { |
11652
f175ab1cccea
(svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents:
11644
diff
changeset
|
1220 QUERY_STR_WIDGET_CAPTION, |
f175ab1cccea
(svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents:
11644
diff
changeset
|
1221 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
|
1222 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
|
1223 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
|
1224 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
|
1225 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1226 |
13456
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1227 /** Class for the string query window. */ |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1228 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
|
1229 { |
13456
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1230 QueryStringFlags flags; ///< Flags controlling behaviour of the window. |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1231 |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1232 QueryStringWindow(StringID str, StringID caption, uint maxsize, uint maxwidth, const WindowDesc *desc, Window *parent, CharSetFilter afilter, QueryStringFlags flags) : |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1233 QueryStringBaseWindow(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
|
1234 { |
13456
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1235 GetString(this->edit_str_buf, str, &this->edit_str_buf[maxsize - 1]); |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1236 this->edit_str_buf[maxsize - 1] = '\0'; |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1237 |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1238 if ((flags & QSF_ACCEPT_UNCHANGED) == 0) this->orig = strdup(this->edit_str_buf); |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1239 |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1240 this->caption = caption; |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1241 this->afilter = afilter; |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1242 this->flags = flags; |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1243 InitializeTextBuffer(&this->text, this->edit_str_buf, maxsize, maxwidth); |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1244 |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1245 this->InitNested(desc); |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1246 |
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
|
1247 this->parent = parent; |
13456
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1248 |
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
|
1249 this->SetFocusedWidget(QUERY_STR_WIDGET_TEXT); |
13456
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1250 this->LowerWidget(QUERY_STR_WIDGET_TEXT); |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1251 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1252 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
1253 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
13456
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1254 { |
13457
91c47c384c4f
(svn r17966) -Fix (r17965): The Default button should be disabled in some cases rather than the Ok button.
alberth <alberth@openttd.org>
parents:
13456
diff
changeset
|
1255 if (widget == QUERY_STR_WIDGET_DEFAULT && (this->flags & QSF_ENABLE_DEFAULT) == 0) { |
14344
eeee36b97cc5
(svn r18899) -Fix: the default button was enabled even when the ENABLE_DEFAULT flag wasn't set
rubidium <rubidium@openttd.org>
parents:
14314
diff
changeset
|
1256 /* We don't want this widget to show! */ |
eeee36b97cc5
(svn r18899) -Fix: the default button was enabled even when the ENABLE_DEFAULT flag wasn't set
rubidium <rubidium@openttd.org>
parents:
14314
diff
changeset
|
1257 fill->width = 0; |
eeee36b97cc5
(svn r18899) -Fix: the default button was enabled even when the ENABLE_DEFAULT flag wasn't set
rubidium <rubidium@openttd.org>
parents:
14314
diff
changeset
|
1258 resize->width = 0; |
13456
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1259 size->width = 0; |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1260 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1261 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1262 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1263 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
|
1264 { |
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
|
1265 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
|
1266 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1267 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
|
1268 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1269 |
13456
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1270 virtual void SetStringParameters(int widget) const |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1271 { |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1272 if (widget == QUERY_STR_WIDGET_CAPTION) SetDParam(0, this->caption); |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1273 } |
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1274 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1275 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
|
1276 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1278 /* 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
|
1279 * 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
|
1280 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
|
1281 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
|
1282 } 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
|
1283 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
|
1284 } |
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
|
1285 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
|
1286 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1288 |
14409
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14344
diff
changeset
|
1289 virtual void OnClick(Point pt, int widget, int click_count) |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1290 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1291 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
|
1292 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
|
1293 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
|
1294 /* 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
|
1295 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
|
1296 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
|
1297 /* 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
|
1298 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
|
1299 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
|
1300 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
|
1301 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1302 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1303 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1305 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1307 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1308 |
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
|
1309 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
|
1310 { |
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
|
1311 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
|
1312 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
|
1313 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
|
1314 case HEBR_EDITING: { |
9399
617011acf06f
(svn r13310) -Fix: invalidate OSK when parent editbox changes (from keyboard)
smatz <smatz@openttd.org>
parents:
9394
diff
changeset
|
1315 Window *osk = FindWindowById(WC_OSK, 0); |
13169
1f44cefc7825
(svn r17674) -Codechange: replace SetDirty + OnInvalidateData with InvalidateData (which does the same). Also call InvalidateData in a few cases where that was actually meant.
rubidium <rubidium@openttd.org>
parents:
13163
diff
changeset
|
1316 if (osk != NULL && osk->parent == this) osk->InvalidateData(); |
9399
617011acf06f
(svn r13310) -Fix: invalidate OSK when parent editbox changes (from keyboard)
smatz <smatz@openttd.org>
parents:
9394
diff
changeset
|
1317 } break; |
10295
7ebf43f7c36b
(svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents:
10276
diff
changeset
|
1318 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
|
1319 /* 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
|
1320 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
|
1321 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
|
1322 } |
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
|
1323 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
|
1324 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1325 |
10547
0b7be1ee92c5
(svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents:
10533
diff
changeset
|
1326 virtual void OnOpenOSKWindow(int wid) |
0b7be1ee92c5
(svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents:
10533
diff
changeset
|
1327 { |
0b7be1ee92c5
(svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents:
10533
diff
changeset
|
1328 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
|
1329 } |
0b7be1ee92c5
(svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents:
10533
diff
changeset
|
1330 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 ~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
|
1332 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1334 Window *parent = this->parent; |
aeff7240b474
(svn r13304) -Fix (r13042): possible double free (showed up in r13092)
smatz <smatz@openttd.org>
parents:
9390
diff
changeset
|
1335 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
|
1336 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
|
1337 } |
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
|
1338 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1339 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1340 |
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
|
1341 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
|
1342 NWidget(NWID_HORIZONTAL), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
1343 NWidget(WWT_CLOSEBOX, COLOUR_GREY), |
12821
9c5779a4ca5d
(svn r17311) -Change: rename STR_WHITE_STRINGN to STR_WHITE_STRING
yexo <yexo@openttd.org>
parents:
12820
diff
changeset
|
1344 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
|
1345 EndContainer(), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
1346 NWidget(WWT_PANEL, COLOUR_GREY), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13683
diff
changeset
|
1347 NWidget(WWT_EDITBOX, COLOUR_GREY, QUERY_STR_WIDGET_TEXT), SetMinimalSize(256, 12), SetFill(1, 1), SetPadding(2, 2, 2, 2), |
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
|
1348 EndContainer(), |
13458
c5fe26cd3457
(svn r17967) -Codechange: Specify that the buttons of the query string window should be equal in size.
alberth <alberth@openttd.org>
parents:
13457
diff
changeset
|
1349 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13683
diff
changeset
|
1350 NWidget(WWT_TEXTBTN, COLOUR_GREY, QUERY_STR_WIDGET_DEFAULT), SetMinimalSize(87, 12), SetFill(1, 1), SetDataTip(STR_BUTTON_DEFAULT, STR_NULL), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13683
diff
changeset
|
1351 NWidget(WWT_TEXTBTN, COLOUR_GREY, QUERY_STR_WIDGET_CANCEL), SetMinimalSize(86, 12), SetFill(1, 1), SetDataTip(STR_BUTTON_CANCEL, STR_NULL), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13683
diff
changeset
|
1352 NWidget(WWT_TEXTBTN, COLOUR_GREY, QUERY_STR_WIDGET_OK), SetMinimalSize(87, 12), SetFill(1, 1), 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
|
1353 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
|
1354 }; |
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
|
1355 |
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
|
1356 static const WindowDesc _query_string_desc( |
13798
6f820ae12bb3
(svn r18324) -Codechange: there's no need for a default size when the window isn't resizable
rubidium <rubidium@openttd.org>
parents:
13797
diff
changeset
|
1357 WDP_AUTO, 0, 0, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5750
diff
changeset
|
1358 WC_QUERY_STRING, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13705
diff
changeset
|
1359 0, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13478
diff
changeset
|
1360 _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
|
1361 ); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1362 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1363 /** 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
|
1364 * @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
|
1365 * @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
|
1366 * @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
|
1367 * @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
|
1368 * @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
|
1369 * 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
|
1370 * @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
|
1371 * @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
|
1372 */ |
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
|
1373 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
|
1374 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1375 DeleteWindowById(WC_QUERY_STRING, 0); |
13456
93cf77b7a1ba
(svn r17965) -Codechange: query string window uses pure nested widgets.
alberth <alberth@openttd.org>
parents:
13436
diff
changeset
|
1376 new QueryStringWindow(str, caption, maxsize, maxwidth, &_query_string_desc, parent, afilter, 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
|
1377 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1378 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1379 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1380 enum QueryWidgets { |
11652
f175ab1cccea
(svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents:
11644
diff
changeset
|
1381 QUERY_WIDGET_CAPTION, |
13163
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1382 QUERY_WIDGET_TEXT, |
11652
f175ab1cccea
(svn r16032) -Codechange: Completing widget numbers of query windows.
alberth <alberth@openttd.org>
parents:
11644
diff
changeset
|
1383 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
|
1384 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
|
1385 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1386 |
9176
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1387 /** |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1388 * 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
|
1389 */ |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1390 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
|
1391 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
|
1392 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
|
1393 StringID message; ///< message shown for query window |
13163
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1394 StringID caption; ///< title of 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
|
1395 |
13163
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1396 QueryWindow(const WindowDesc *desc, StringID caption, StringID message, Window *parent, QueryCallbackProc *callback) : Window() |
9176
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1397 { |
13163
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1398 /* Create a backup of the variadic arguments to strings because it will be |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1399 * overridden pretty often. We will copy these back for drawing */ |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1400 CopyOutDParam(this->params, 0, lengthof(this->params)); |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1401 this->caption = caption; |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1402 this->message = message; |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1403 this->proc = callback; |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1404 |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1405 this->InitNested(desc); |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1406 |
9176
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1407 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
|
1408 this->parent = parent; |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1409 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
|
1410 this->top = parent->top + (parent->height / 2) - (this->height / 2); |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1411 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1412 |
9176
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1413 ~QueryWindow() |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1414 { |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1415 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
|
1416 } |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1417 |
13163
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1418 virtual void SetStringParameters(int widget) const |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1419 { |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1420 switch (widget) { |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1421 case QUERY_WIDGET_CAPTION: |
13174
cd71f89cd87f
(svn r17681) -Fix [FS#3248] (r17668): crash when the caption of the query window used parameters
rubidium <rubidium@openttd.org>
parents:
13169
diff
changeset
|
1422 CopyInDParam(1, this->params, lengthof(this->params)); |
13163
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1423 SetDParam(0, this->caption); |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1424 break; |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1425 |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1426 case QUERY_WIDGET_TEXT: |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1427 CopyInDParam(0, this->params, lengthof(this->params)); |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1428 break; |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1429 } |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1430 } |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1431 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
1432 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
13163
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1433 { |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1434 if (widget != QUERY_WIDGET_TEXT) return; |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1435 |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1436 Dimension d = GetStringMultiLineBoundingBox(this->message, *size); |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1437 d.width += padding.width; |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1438 d.height += padding.height; |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1439 *size = d; |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1440 } |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1441 |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1442 virtual void DrawWidget(const Rect &r, int widget) const |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1443 { |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1444 if (widget != QUERY_WIDGET_TEXT) return; |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1445 |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1446 DrawStringMultiLine(r.left, r.right, r.top, r.bottom, this->message, TC_FROMSTRING, SA_CENTER); |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1447 } |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1448 |
9176
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1449 virtual void OnPaint() |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1450 { |
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
|
1451 this->DrawWidgets(); |
9176
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1452 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1453 |
14409
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14344
diff
changeset
|
1454 virtual void OnClick(Point pt, int widget, int click_count) |
9176
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1455 { |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1456 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
|
1457 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
|
1458 /* 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
|
1459 * 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
|
1460 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
|
1461 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
|
1462 /* 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
|
1463 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
|
1464 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
|
1465 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
|
1466 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
|
1467 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
|
1468 } |
9319
7c3d6f855380
(svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents:
9317
diff
changeset
|
1469 } break; |
9176
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1470 case QUERY_WIDGET_NO: |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1471 delete this; |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1472 break; |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1473 } |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1474 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1475 |
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
|
1476 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
|
1477 { |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1478 /* 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
|
1479 switch (keycode) { |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1480 case WKC_RETURN: |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1481 case WKC_NUM_ENTER: |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1482 if (this->proc != NULL) { |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1483 this->proc(this->parent, true); |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1484 this->proc = NULL; |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1485 } |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1486 /* Fallthrough */ |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1487 case WKC_ESC: |
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1488 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
|
1489 return ES_HANDLED; |
9176
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1490 } |
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
|
1491 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
|
1492 } |
9176
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1493 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1494 |
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
|
1495 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
|
1496 NWidget(NWID_HORIZONTAL), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
1497 NWidget(WWT_CLOSEBOX, COLOUR_RED), |
13163
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1498 NWidget(WWT_CAPTION, COLOUR_RED, QUERY_WIDGET_CAPTION), SetDataTip(STR_JUST_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
|
1499 EndContainer(), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
1500 NWidget(WWT_PANEL, COLOUR_RED), SetPIP(8, 15, 8), |
13163
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1501 NWidget(WWT_TEXT, COLOUR_RED, QUERY_WIDGET_TEXT), SetMinimalSize(200, 12), |
3f7aeb884dcf
(svn r17668) -Codechange: Query window uses nested widgets
yexo <yexo@openttd.org>
parents:
13118
diff
changeset
|
1502 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(20, 29, 20), |
12632
e41943276802
(svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents:
12619
diff
changeset
|
1503 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
|
1504 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
|
1505 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
|
1506 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
|
1507 }; |
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
|
1508 |
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
|
1509 static const WindowDesc _query_desc( |
13798
6f820ae12bb3
(svn r18324) -Codechange: there's no need for a default size when the window isn't resizable
rubidium <rubidium@openttd.org>
parents:
13797
diff
changeset
|
1510 WDP_CENTER, 0, 0, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5750
diff
changeset
|
1511 WC_CONFIRM_POPUP_QUERY, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13705
diff
changeset
|
1512 WDF_UNCLICK_BUTTONS | WDF_MODAL, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13478
diff
changeset
|
1513 _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
|
1514 ); |
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 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1516 /** 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
|
1517 * 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
|
1518 * @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
|
1519 * @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
|
1520 * @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
|
1521 * 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
|
1522 * @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
|
1523 */ |
9319
7c3d6f855380
(svn r13191) -Fix: segfault after confirming query subwindow in the Generate New World window
smatz <smatz@openttd.org>
parents:
9317
diff
changeset
|
1524 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
|
1525 { |
9176
0f495f0a0c53
(svn r13039) -Codechange: make a class of the Query window.
rubidium <rubidium@openttd.org>
parents:
9170
diff
changeset
|
1526 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
|
1527 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1528 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1529 |
11862
6e085df38529
(svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents:
11852
diff
changeset
|
1530 enum SaveLoadWindowWidgets { |
6e085df38529
(svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents:
11852
diff
changeset
|
1531 SLWW_WINDOWTITLE, |
6e085df38529
(svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents:
11852
diff
changeset
|
1532 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
|
1533 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
|
1534 SLWW_BACKGROUND, |
6e085df38529
(svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents:
11852
diff
changeset
|
1535 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
|
1536 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
|
1537 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
|
1538 SLWW_SCROLLBAR, |
6e085df38529
(svn r16256) -Codechange: Moved load/save dialogue widget numbers outside the window struct.
alberth <alberth@openttd.org>
parents:
11852
diff
changeset
|
1539 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
|
1540 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
|
1541 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
|
1542 SLWW_SAVE_GAME, ///< not to mention in here too |
13340
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1543 SLWW_CONTENT_DOWNLOAD_SEL, ///< Selection 'stack' to 'hide' the content download |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1544 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1545 |
11865
a8d788b2bbd2
(svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents:
11864
diff
changeset
|
1546 static const NWidgetPart _nested_load_dialog_widgets[] = { |
13410
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1547 NWidget(NWID_HORIZONTAL), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
1548 NWidget(WWT_CLOSEBOX, COLOUR_GREY), |
13410
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1549 NWidget(WWT_CAPTION, COLOUR_GREY, SLWW_WINDOWTITLE), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1550 EndContainer(), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1551 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13683
diff
changeset
|
1552 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYNAME), SetDataTip(STR_SORT_BY_CAPTION_NAME, STR_TOOLTIP_SORT_ORDER), SetFill(1, 0), SetResize(1, 0), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13683
diff
changeset
|
1553 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYDATE), SetDataTip(STR_SORT_BY_CAPTION_DATE, STR_TOOLTIP_SORT_ORDER), SetFill(1, 0), SetResize(1, 0), |
13410
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1554 EndContainer(), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13683
diff
changeset
|
1555 NWidget(WWT_PANEL, COLOUR_GREY, SLWW_BACKGROUND), SetFill(1, 0), SetResize(1, 0), EndContainer(), |
13410
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1556 NWidget(WWT_PANEL, COLOUR_GREY, SLWW_FILE_BACKGROUND), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1557 NWidget(NWID_HORIZONTAL), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1558 NWidget(NWID_VERTICAL), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13683
diff
changeset
|
1559 NWidget(WWT_INSET, COLOUR_GREY, SLWW_DRIVES_DIRECTORIES_LIST), SetFill(1, 1), SetPadding(2, 1, 2, 2), |
13410
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1560 SetDataTip(0x0, STR_SAVELOAD_LIST_TOOLTIP), SetResize(1, 10), EndContainer(), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1561 NWidget(NWID_SELECTION, INVALID_COLOUR, SLWW_CONTENT_DOWNLOAD_SEL), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1562 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_CONTENT_DOWNLOAD), SetResize(1, 0), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1563 SetDataTip(STR_INTRO_ONLINE_CONTENT, STR_INTRO_TOOLTIP_ONLINE_CONTENT), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1564 EndContainer(), |
11865
a8d788b2bbd2
(svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents:
11864
diff
changeset
|
1565 EndContainer(), |
13410
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1566 NWidget(NWID_VERTICAL), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1567 NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, SLWW_HOME_BUTTON), SetMinimalSize(12, 12), SetDataTip(SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1568 NWidget(WWT_SCROLLBAR, COLOUR_GREY, SLWW_SCROLLBAR), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
1569 NWidget(WWT_RESIZEBOX, COLOUR_GREY), |
11865
a8d788b2bbd2
(svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents:
11864
diff
changeset
|
1570 EndContainer(), |
a8d788b2bbd2
(svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents:
11864
diff
changeset
|
1571 EndContainer(), |
a8d788b2bbd2
(svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents:
11864
diff
changeset
|
1572 EndContainer(), |
a8d788b2bbd2
(svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents:
11864
diff
changeset
|
1573 }; |
a8d788b2bbd2
(svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents:
11864
diff
changeset
|
1574 |
a8d788b2bbd2
(svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents:
11864
diff
changeset
|
1575 static const NWidgetPart _nested_save_dialog_widgets[] = { |
13410
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1576 NWidget(NWID_HORIZONTAL), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
1577 NWidget(WWT_CLOSEBOX, COLOUR_GREY), |
13410
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1578 NWidget(WWT_CAPTION, COLOUR_GREY, SLWW_WINDOWTITLE), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1579 EndContainer(), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1580 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13683
diff
changeset
|
1581 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYNAME), SetDataTip(STR_SORT_BY_CAPTION_NAME, STR_TOOLTIP_SORT_ORDER), SetFill(1, 0), SetResize(1, 0), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13683
diff
changeset
|
1582 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SORT_BYDATE), SetDataTip(STR_SORT_BY_CAPTION_DATE, STR_TOOLTIP_SORT_ORDER), SetFill(1, 0), SetResize(1, 0), |
13410
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1583 EndContainer(), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13683
diff
changeset
|
1584 NWidget(WWT_PANEL, COLOUR_GREY, SLWW_BACKGROUND), SetFill(1, 0), SetResize(1, 0), EndContainer(), |
13410
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1585 NWidget(WWT_PANEL, COLOUR_GREY, SLWW_FILE_BACKGROUND), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1586 NWidget(NWID_HORIZONTAL), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1587 NWidget(WWT_INSET, COLOUR_GREY, SLWW_DRIVES_DIRECTORIES_LIST), SetPadding(2, 1, 0, 2), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1588 SetDataTip(0x0, STR_SAVELOAD_LIST_TOOLTIP), SetResize(1, 10), EndContainer(), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1589 NWidget(NWID_VERTICAL), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1590 NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, SLWW_HOME_BUTTON), SetMinimalSize(12, 12), SetDataTip(SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1591 NWidget(WWT_SCROLLBAR, COLOUR_GREY, SLWW_SCROLLBAR), |
11865
a8d788b2bbd2
(svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents:
11864
diff
changeset
|
1592 EndContainer(), |
a8d788b2bbd2
(svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents:
11864
diff
changeset
|
1593 EndContainer(), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13683
diff
changeset
|
1594 NWidget(WWT_EDITBOX, COLOUR_GREY, SLWW_SAVE_OSK_TITLE), SetPadding(3, 2, 2, 2), SetFill(1, 0), SetResize(1, 0), |
13410
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1595 SetDataTip(STR_SAVELOAD_OSKTITLE, STR_SAVELOAD_EDITBOX_TOOLTIP), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1596 EndContainer(), |
3fb5398475cc
(svn r17919) -Codechange (r17849): Remove the outermost NWID_LAYERED and NWID_VERTICAL containers from the load and save nested widget parts, since they do nothing.
alberth <alberth@openttd.org>
parents:
13409
diff
changeset
|
1597 NWidget(NWID_HORIZONTAL), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13683
diff
changeset
|
1598 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_DELETE_SELECTION), SetDataTip(STR_SAVELOAD_DELETE_BUTTON, STR_SAVELOAD_DELETE_TOOLTIP), SetFill(1, 0), SetResize(1, 0), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13683
diff
changeset
|
1599 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, SLWW_SAVE_GAME), SetDataTip(STR_SAVELOAD_SAVE_BUTTON, STR_SAVELOAD_SAVE_TOOLTIP), SetFill(1, 0), SetResize(1, 0), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
1600 NWidget(WWT_RESIZEBOX, COLOUR_GREY), |
11865
a8d788b2bbd2
(svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents:
11864
diff
changeset
|
1601 EndContainer(), |
a8d788b2bbd2
(svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents:
11864
diff
changeset
|
1602 }; |
a8d788b2bbd2
(svn r16259) -Codechange: Added nested widgets to the load and save dialogue windows.
alberth <alberth@openttd.org>
parents:
11864
diff
changeset
|
1603 |
11085
8da1855e9f14
(svn r15428) -Codechange: consistently use colour instead of having both color and colour.
rubidium <rubidium@openttd.org>
parents:
11081
diff
changeset
|
1604 /* 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
|
1605 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
|
1606 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
|
1607 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
|
1608 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1609 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
6239
diff
changeset
|
1610 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
|
1611 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1612 _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
|
1613 FiosFreeSavegameList(); |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1614 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1615 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
|
1616 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
|
1617 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
|
1618 case SLD_SAVE_SCENARIO: |
9441
e899ed594e7c
(svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
1619 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
|
1620 case SLD_LOAD_HEIGHTMAP: |
9441
e899ed594e7c
(svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
1621 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
|
1622 |
9441
e899ed594e7c
(svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
1623 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
|
1624 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1625 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1626 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
6239
diff
changeset
|
1627 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
|
1628 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1629 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
|
1630 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
|
1631 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1632 /* 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
|
1633 * 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
|
1634 * 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
|
1635 */ |
9441
e899ed594e7c
(svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
1636 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
|
1637 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
|
1638 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
|
1639 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
|
1640 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
|
1641 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
|
1642 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1643 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1644 |
9441
e899ed594e7c
(svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
1645 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
|
1646 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
|
1647 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1648 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
6239
diff
changeset
|
1649 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
|
1650 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1651 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
|
1652 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
|
1653 FiosItem o_dir; |
10944
0f460411415a
(svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents:
10934
diff
changeset
|
1654 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
|
1655 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1656 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
|
1657 { |
10533
53a8506c2079
(svn r14790) -Codechange: unify generation of default savegame/screenshot names (PhilSophus)
rubidium <rubidium@openttd.org>
parents:
10499
diff
changeset
|
1658 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
|
1659 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1660 |
13340
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1661 SaveLoadWindow(const WindowDesc *desc, SaveLoadDialogMode mode) : QueryStringBaseWindow(64) |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1662 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1663 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
|
1664 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
|
1665 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
|
1666 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
|
1667 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
|
1668 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
|
1669 }; |
13340
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1670 assert((uint)mode < lengthof(saveload_captions)); |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1671 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1672 /* 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
|
1673 * 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
|
1674 switch (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
|
1675 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
|
1676 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
|
1677 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
|
1678 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1679 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1680 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
|
1681 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
|
1682 |
13340
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1683 this->CreateNestedTree(desc); |
14063
4eb2be463cc4
(svn r18606) -Codechange: Introduce several forms of zero-size stacked display planes.
alberth <alberth@openttd.org>
parents:
14037
diff
changeset
|
1684 if (mode == SLD_LOAD_GAME) this->GetWidget<NWidgetStacked>(SLWW_CONTENT_DOWNLOAD_SEL)->SetDisplayedPlane(SZSP_HORIZONTAL); |
13340
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1685 this->GetWidget<NWidgetCore>(SLWW_WINDOWTITLE)->widget_data = saveload_captions[mode]; |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1686 |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1687 this->FinishInitNested(desc, 0); |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1688 |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1689 this->LowerWidget(SLWW_DRIVES_DIRECTORIES_LIST); |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1690 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1691 /* 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
|
1692 * 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
|
1693 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
|
1694 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
|
1695 } |
13340
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1696 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
|
1697 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1698 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
|
1699 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1700 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
|
1701 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1702 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
|
1703 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
|
1704 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
|
1705 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
|
1706 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
|
1707 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
|
1708 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1709 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
|
1710 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
|
1711 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
|
1712 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
|
1713 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1714 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
|
1715 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
|
1716 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
|
1717 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1718 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
|
1719 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
|
1720 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1721 |
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
|
1722 /* 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
|
1723 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
|
1724 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
|
1725 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1726 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1727 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1728 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
|
1729 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1730 /* 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
|
1731 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
|
1732 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
|
1733 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1734 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
|
1735 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1736 |
13340
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1737 virtual void DrawWidget(const Rect &r, int widget) const |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1738 { |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1739 switch (widget) { |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1740 case SLWW_SORT_BYNAME: |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1741 case SLWW_SORT_BYDATE: |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1742 if (((_savegame_sort_order & SORT_BY_NAME) != 0) == (widget == SLWW_SORT_BYNAME)) { |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1743 this->DrawSortButtonState(widget, _savegame_sort_order & SORT_DESCENDING ? SBS_DOWN : SBS_UP); |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1744 } |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1745 break; |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1746 |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1747 case SLWW_BACKGROUND: { |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1748 static const char *path = NULL; |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1749 static StringID str = STR_ERROR_UNABLE_TO_READ_DRIVE; |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1750 static uint64 tot = 0; |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1751 |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1752 if (_fios_path_changed) { |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1753 str = FiosGetDescText(&path, &tot); |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1754 _fios_path_changed = false; |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1755 } |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1756 |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1757 if (str != STR_ERROR_UNABLE_TO_READ_DRIVE) SetDParam(0, tot); |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1758 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + FONT_HEIGHT_NORMAL + WD_FRAMERECT_TOP, str); |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1759 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + WD_FRAMERECT_TOP, path, TC_BLACK); |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1760 } break; |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1761 |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1762 case SLWW_DRIVES_DIRECTORIES_LIST: { |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1763 GfxFillRect(r.left + 1, r.top + 1, r.right, r.bottom, 0xD7); |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1764 |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1765 uint y = r.top + WD_FRAMERECT_TOP; |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1766 for (uint pos = this->vscroll.GetPosition(); pos < _fios_items.Length(); pos++) { |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1767 const FiosItem *item = _fios_items.Get(pos); |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1768 |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1769 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, item->title, _fios_colours[item->type]); |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1770 y += this->resize.step_height; |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1771 if (y >= this->vscroll.GetCapacity() * this->resize.step_height + r.top + WD_FRAMERECT_TOP) break; |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1772 } |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1773 } break; |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1774 } |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1775 } |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1776 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
1777 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
13340
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1778 { |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1779 switch (widget) { |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1780 case SLWW_BACKGROUND: |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1781 size->height = 2 * FONT_HEIGHT_NORMAL + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM; |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1782 break; |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1783 |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1784 case SLWW_DRIVES_DIRECTORIES_LIST: |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1785 resize->height = FONT_HEIGHT_NORMAL; |
13611
1e76fef2e9e2
(svn r18135) -Codechange: File list text overflowed its container.
peter1138 <peter1138@openttd.org>
parents:
13602
diff
changeset
|
1786 size->height = resize->height * 10 + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM; |
13340
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1787 break; |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1788 } |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1789 } |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1790 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1791 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
|
1792 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1794 _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
|
1795 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
|
1796 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1797 |
13340
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1798 this->vscroll.SetCount(_fios_items.Length()); |
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1799 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
|
1800 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1801 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
|
1802 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
|
1803 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1804 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1805 |
14409
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14344
diff
changeset
|
1806 virtual void OnClick(Point pt, int widget, int click_count) |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1807 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 switch (widget) { |
10944
0f460411415a
(svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents:
10934
diff
changeset
|
1809 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
|
1810 _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
|
1811 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
|
1812 _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
|
1813 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
|
1814 break; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1815 |
10944
0f460411415a
(svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents:
10934
diff
changeset
|
1816 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
|
1817 _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
|
1818 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
|
1819 _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
|
1820 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
|
1821 break; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1822 |
10944
0f460411415a
(svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents:
10934
diff
changeset
|
1823 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
|
1824 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
|
1825 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
|
1826 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
|
1827 break; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1828 |
10944
0f460411415a
(svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents:
10934
diff
changeset
|
1829 case SLWW_DRIVES_DIRECTORIES_LIST: { // Click the listbox |
13340
d482f09e16bd
(svn r17849) -Codechange: make the saveload windows nested
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
1830 int y = (pt.y - this->GetWidget<NWidgetBase>(SLWW_DRIVES_DIRECTORIES_LIST)->pos_y - WD_FRAMERECT_TOP) / this->resize.step_height; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1831 |
12878
8ad447b80c42
(svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents:
12867
diff
changeset
|
1832 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
|
1833 |
9441
e899ed594e7c
(svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
1834 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
|
1835 |
11256
f63c1d69ed92
(svn r15605) -Codechange: constify a function
rubidium <rubidium@openttd.org>
parents:
11230
diff
changeset
|
1836 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
|
1837 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
|
1838 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
|
1839 _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
|
1840 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1842 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
|
1843 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
|
1844 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1846 } 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
|
1847 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
|
1848 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
|
1849 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
|
1850 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1852 ShowHeightmapLoad(); |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1853 } 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
|
1854 /* 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
|
1855 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
|
1856 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
|
1857 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
|
1858 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1859 } 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
|
1860 /* 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
|
1861 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
|
1862 BuildFileList(); |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1863 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1865 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1866 |
11352
62978bce3c1c
(svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents:
11319
diff
changeset
|
1867 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
|
1868 if (!_network_available) { |
13419
ddfb6a69b9c3
(svn r17928) -Codechange: ShowErrorMessage() now takes the summary string before the details string.
alberth <alberth@openttd.org>
parents:
13418
diff
changeset
|
1869 ShowErrorMessage(STR_NETWORK_ERROR_NOTAVAILABLE, INVALID_STRING_ID, 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
|
1870 } else { |
62978bce3c1c
(svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents:
11319
diff
changeset
|
1871 #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
|
1872 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
|
1873 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
|
1874 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
|
1875 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
|
1876 } |
62978bce3c1c
(svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents:
11319
diff
changeset
|
1877 #endif |
62978bce3c1c
(svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents:
11319
diff
changeset
|
1878 } |
62978bce3c1c
(svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents:
11319
diff
changeset
|
1879 break; |
62978bce3c1c
(svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents:
11319
diff
changeset
|
1880 |
10944
0f460411415a
(svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents:
10934
diff
changeset
|
1881 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
|
1882 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
|
1883 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1885 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1887 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1889 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
|
1890 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1892 |
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
|
1893 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
|
1894 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1896 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
|
1897 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
|
1898 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1899 |
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
|
1900 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
|
1901 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
|
1902 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
|
1903 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
|
1904 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 |
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
|
1906 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
|
1907 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1908 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1909 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
|
1910 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1911 /* 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
|
1912 * 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
|
1913 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
|
1914 |
10944
0f460411415a
(svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents:
10934
diff
changeset
|
1915 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
|
1916 if (!FiosDelete(this->text.buf)) { |
13419
ddfb6a69b9c3
(svn r17928) -Codechange: ShowErrorMessage() now takes the summary string before the details string.
alberth <alberth@openttd.org>
parents:
13418
diff
changeset
|
1917 ShowErrorMessage(STR_ERROR_UNABLE_TO_DELETE_FILE, INVALID_STRING_ID, 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
|
1918 } 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
|
1919 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
|
1920 /* 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
|
1921 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
|
1922 } |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1923 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1925 this->SetDirty(); |
10944
0f460411415a
(svn r15283) -Documentation: Apply some widget naming to the widget arrays.
belugas <belugas@openttd.org>
parents:
10934
diff
changeset
|
1926 } 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
|
1927 _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
|
1928 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
|
1929 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 /* 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
|
1931 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
|
1932 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1933 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 |
13344
04b02b2cfa2b
(svn r17853) -Codechange: remove the 'delta' parameter from OnResize; it was used in ways that aren't always wanted, causing bugs and the like. Also with nested widgets most reasons for handling OnResize have gone.
rubidium <rubidium@openttd.org>
parents:
13340
diff
changeset
|
1935 virtual void OnResize() |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1936 { |
14037
ca29deba0f1a
(svn r18580) -Codechange: Use widget information only for setting scrollbar capacity.
alberth <alberth@openttd.org>
parents:
13996
diff
changeset
|
1937 this->vscroll.SetCapacityFromWidget(this, 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
|
1938 } |
11352
62978bce3c1c
(svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents:
11319
diff
changeset
|
1939 |
62978bce3c1c
(svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents:
11319
diff
changeset
|
1940 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
|
1941 { |
62978bce3c1c
(svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents:
11319
diff
changeset
|
1942 BuildFileList(); |
62978bce3c1c
(svn r15702) -Feature(tte): direct content download 'links' in the play scenario/heightmap windows.
rubidium <rubidium@openttd.org>
parents:
11319
diff
changeset
|
1943 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1944 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1945 |
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
|
1946 static const WindowDesc _load_dialog_desc( |
13796
3e68f07eb821
(svn r18322) -Codechange: remove the WDP duplication; no need to tell the same twice.
rubidium <rubidium@openttd.org>
parents:
13792
diff
changeset
|
1947 WDP_CENTER, 257, 294, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5750
diff
changeset
|
1948 WC_SAVELOAD, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13705
diff
changeset
|
1949 WDF_UNCLICK_BUTTONS, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13478
diff
changeset
|
1950 _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
|
1951 ); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1952 |
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
|
1953 static const WindowDesc _save_dialog_desc( |
13796
3e68f07eb821
(svn r18322) -Codechange: remove the WDP duplication; no need to tell the same twice.
rubidium <rubidium@openttd.org>
parents:
13792
diff
changeset
|
1954 WDP_CENTER, 257, 320, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5750
diff
changeset
|
1955 WC_SAVELOAD, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13705
diff
changeset
|
1956 WDF_UNCLICK_BUTTONS, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13478
diff
changeset
|
1957 _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
|
1958 ); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1959 |
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
|
1960 /** 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
|
1961 * 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
|
1962 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
|
1963 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
|
1964 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
|
1965 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
|
1966 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
|
1967 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
|
1968 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
|
1969 }; |
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
|
1970 |
8149
ad7ddb6150dc
(svn r11711) -Codechange: Name the Save Load Dialog Mode enum
belugas <belugas@openttd.org>
parents:
8144
diff
changeset
|
1971 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
|
1972 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1973 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
|
1974 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1975 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
|
1976 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
|
1977 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
|
1978 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
|
1979 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
|
1980 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
|
1981 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
|
1982 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1983 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1984 _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
|
1985 _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
|
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 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
|
1988 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1989 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
6239
diff
changeset
|
1990 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
|
1991 { |
13034
6eb3f749890a
(svn r17532) -Codechange: Rename several Invalidate functions to SetDirty for more consistency and distinguishability.
frosch <frosch@openttd.org>
parents:
13030
diff
changeset
|
1992 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
|
1993 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1994 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1995 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
|
1996 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1997 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
|
1998 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
|
1999 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
|
2000 _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
|
2001 break; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2002 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2003 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
|
2004 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
|
2005 _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
|
2006 break; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2007 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2008 #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
|
2009 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
|
2010 _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
|
2011 break; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2012 #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
|
2013 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2014 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
|
2015 _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
|
2016 break; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2017 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2018 default: |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2019 _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
|
2020 break; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2021 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2022 } |