Mercurial > hg > openttd
annotate src/newgrf_gui.cpp @ 16601:35b2a62ecb1a draft
(svn r21331) -Codechange: Make drawing the widgets default behaviour in OnPaint().
author | alberth <alberth@openttd.org> |
---|---|
date | Fri, 26 Nov 2010 15:22:18 +0000 |
parents | fa50c5fffd18 |
children | 1111794047a4 |
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:
12632
diff
changeset
|
3 /* |
bc7926153e19
(svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents:
12632
diff
changeset
|
4 * This file is part of OpenTTD. |
bc7926153e19
(svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents:
12632
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:
12632
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:
12632
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:
12632
diff
changeset
|
8 */ |
bc7926153e19
(svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents:
12632
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:
8749
diff
changeset
|
10 /** @file newgrf_gui.cpp GUI to change NewGRF settings. */ |
6348
bcf98ba27bbf
(svn r9385) -Cleanup: doxygen changes. Today, we are exploring the letter N.
belugas <belugas@openttd.org>
parents:
6248
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 "gui.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
14 #include "newgrf.h" |
8114
2d6af5d7a142
(svn r11675) -Codechange: split the string types from the string functions.
rubidium <rubidium@openttd.org>
parents:
8107
diff
changeset
|
15 #include "strings_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:
8130
diff
changeset
|
16 #include "window_func.h" |
9457
267a95510fdf
(svn r13375) -Add: logging of actions that could possibly cause desyncs and crashes to simplify debugging. See readme.txt for details
smatz <smatz@openttd.org>
parents:
9317
diff
changeset
|
17 #include "gamelog.h" |
15599
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
18 #include "settings_type.h" |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
19 #include "settings_func.h" |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
20 #include "widgets/dropdown_type.h" |
10793
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
21 #include "network/network.h" |
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
22 #include "network/network_content.h" |
13043
8eef3a6e299f
(svn r17541) -Feature: Filtering in Add-NewGRF dialog.
frosch <frosch@openttd.org>
parents:
13020
diff
changeset
|
23 #include "sortlist_type.h" |
8eef3a6e299f
(svn r17541) -Feature: Filtering in Add-NewGRF dialog.
frosch <frosch@openttd.org>
parents:
13020
diff
changeset
|
24 #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:
14149
diff
changeset
|
25 #include "core/geometry_func.hpp" |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
26 #include "newgrf_text.h" |
16522
fa50c5fffd18
(svn r21248) -Codechange: don't run the tar scanner twice upon startup
rubidium <rubidium@openttd.org>
parents:
16441
diff
changeset
|
27 #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
|
28 |
8264
2495310e220f
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium <rubidium@openttd.org>
parents:
8224
diff
changeset
|
29 #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:
8224
diff
changeset
|
30 #include "table/sprites.h" |
2495310e220f
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium <rubidium@openttd.org>
parents:
8224
diff
changeset
|
31 |
13968
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
32 /** |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
33 * Show the first NewGRF error we can find. |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
34 */ |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
35 void ShowNewGRFError() |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
36 { |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
37 for (const GRFConfig *c = _grfconfig; c != NULL; c = c->next) { |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
38 /* We only want to show fatal errors */ |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
39 if (c->error == NULL || c->error->severity != STR_NEWGRF_ERROR_MSG_FATAL) continue; |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
40 |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
41 SetDParam (0, c->error->custom_message == NULL ? c->error->message : STR_JUST_RAW_STRING); |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
42 SetDParamStr(1, c->error->custom_message); |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
43 SetDParam (2, STR_JUST_RAW_STRING); |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
44 SetDParamStr(3, c->filename); |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
45 SetDParam (4, STR_JUST_RAW_STRING); |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
46 SetDParamStr(5, c->error->data); |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
47 for (uint i = 0; i < c->error->num_params; i++) { |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
48 SetDParam(6 + i, c->error->param_value[i]); |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
49 } |
14645
b7a22979b84e
(svn r19224) -Codechange: change parameters passed to ShowErrorMessage() a bit
smatz <smatz@openttd.org>
parents:
14561
diff
changeset
|
50 ShowErrorMessage(STR_NEWGRF_ERROR_FATAL_POPUP, INVALID_STRING_ID, WL_CRITICAL); |
13968
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
51 break; |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
52 } |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
53 } |
070572f1272d
(svn r18506) -Fix [FS#3368]: no error message was created for the first fatal NewGRF error.
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
54 |
13017
ab07d6d87608
(svn r17511) -Codechange: Simplify ShowNewGRFInfo() by passing 'right' instead of 'width'.
frosch <frosch@openttd.org>
parents:
12879
diff
changeset
|
55 static void ShowNewGRFInfo(const GRFConfig *c, uint x, uint y, uint right, uint bottom, bool show_params) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
56 { |
6103
e3a3a903fa28
(svn r8838) -Feature: Show newgrf error messages loaded in Action B in the newgrf gui
maedhros <maedhros@openttd.org>
parents:
5893
diff
changeset
|
57 if (c->error != NULL) { |
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:
9457
diff
changeset
|
58 char message[512]; |
9957
2416082e752c
(svn r14112) -Fix (r13715)[FS#2232]: Action B custom messages with parameteers were broken.
frosch <frosch@openttd.org>
parents:
9864
diff
changeset
|
59 SetDParamStr(0, c->error->custom_message); // is skipped by built-in messages |
2416082e752c
(svn r14112) -Fix (r13715)[FS#2232]: Action B custom messages with parameteers were broken.
frosch <frosch@openttd.org>
parents:
9864
diff
changeset
|
60 SetDParam (1, STR_JUST_RAW_STRING); |
2416082e752c
(svn r14112) -Fix (r13715)[FS#2232]: Action B custom messages with parameteers were broken.
frosch <frosch@openttd.org>
parents:
9864
diff
changeset
|
61 SetDParamStr(2, c->filename); |
2416082e752c
(svn r14112) -Fix (r13715)[FS#2232]: Action B custom messages with parameteers were broken.
frosch <frosch@openttd.org>
parents:
9864
diff
changeset
|
62 SetDParam (3, STR_JUST_RAW_STRING); |
2416082e752c
(svn r14112) -Fix (r13715)[FS#2232]: Action B custom messages with parameteers were broken.
frosch <frosch@openttd.org>
parents:
9864
diff
changeset
|
63 SetDParamStr(4, c->error->data); |
2416082e752c
(svn r14112) -Fix (r13715)[FS#2232]: Action B custom messages with parameteers were broken.
frosch <frosch@openttd.org>
parents:
9864
diff
changeset
|
64 for (uint i = 0; i < c->error->num_params; i++) { |
11833
e4d9da4d81eb
(svn r16223) -Fix (r8881): ActionB should use the online parameters from GRFFile instead of the initial user-specified values from GRFConfig. Also use the values as they were set when the ActionB was executed, not as they are set when the message is shown.
frosch <frosch@openttd.org>
parents:
11796
diff
changeset
|
65 SetDParam(5 + i, c->error->param_value[i]); |
6139
3c76c0f47447
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros <maedhros@openttd.org>
parents:
6103
diff
changeset
|
66 } |
9957
2416082e752c
(svn r14112) -Fix (r13715)[FS#2232]: Action B custom messages with parameteers were broken.
frosch <frosch@openttd.org>
parents:
9864
diff
changeset
|
67 GetString(message, c->error->custom_message == NULL ? c->error->message : STR_JUST_RAW_STRING, lastof(message)); |
6139
3c76c0f47447
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros <maedhros@openttd.org>
parents:
6103
diff
changeset
|
68 |
3c76c0f47447
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros <maedhros@openttd.org>
parents:
6103
diff
changeset
|
69 SetDParamStr(0, message); |
13017
ab07d6d87608
(svn r17511) -Codechange: Simplify ShowNewGRFInfo() by passing 'right' instead of 'width'.
frosch <frosch@openttd.org>
parents:
12879
diff
changeset
|
70 y = DrawStringMultiLine(x, right, y, bottom, c->error->severity); |
6103
e3a3a903fa28
(svn r8838) -Feature: Show newgrf error messages loaded in Action B in the newgrf gui
maedhros <maedhros@openttd.org>
parents:
5893
diff
changeset
|
71 } |
e3a3a903fa28
(svn r8838) -Feature: Show newgrf error messages loaded in Action B in the newgrf gui
maedhros <maedhros@openttd.org>
parents:
5893
diff
changeset
|
72 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
73 /* Draw filename or not if it is not known (GRF sent over internet) */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
74 if (c->filename != NULL) { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
75 SetDParamStr(0, c->filename); |
13017
ab07d6d87608
(svn r17511) -Codechange: Simplify ShowNewGRFInfo() by passing 'right' instead of 'width'.
frosch <frosch@openttd.org>
parents:
12879
diff
changeset
|
76 y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_FILENAME); |
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 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
78 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
79 /* Prepare and draw GRF ID */ |
15201
071e920abcfb
(svn r19830) -Codechange: Move variable declarations to their first use.
alberth <alberth@openttd.org>
parents:
15200
diff
changeset
|
80 char buff[256]; |
14676
353df593bee0
(svn r19255) -Codechange: encapsulate GRFIdentifier in GRFConfig instead of subclassing it
yexo <yexo@openttd.org>
parents:
14645
diff
changeset
|
81 snprintf(buff, lengthof(buff), "%08X", BSWAP32(c->ident.grfid)); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
82 SetDParamStr(0, buff); |
13017
ab07d6d87608
(svn r17511) -Codechange: Simplify ShowNewGRFInfo() by passing 'right' instead of 'width'.
frosch <frosch@openttd.org>
parents:
12879
diff
changeset
|
83 y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_GRF_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
|
84 |
16286
3210d6542c3f
(svn r20992) -Fix (r20958): Show either version and minimum compatible version or neither
planetmaker <planetmaker@openttd.org>
parents:
16259
diff
changeset
|
85 if ((_settings_client.gui.newgrf_developer_tools || _settings_client.gui.newgrf_show_old_versions) && c->version != 0) { |
15599
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
86 SetDParam(0, c->version); |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
87 y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_VERSION); |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
88 } |
16286
3210d6542c3f
(svn r20992) -Fix (r20958): Show either version and minimum compatible version or neither
planetmaker <planetmaker@openttd.org>
parents:
16259
diff
changeset
|
89 if ((_settings_client.gui.newgrf_developer_tools || _settings_client.gui.newgrf_show_old_versions) && c->min_loadable_version != 0) { |
16259
8a820ca2e1f7
(svn r20960) -Add: Allow setting 'minimal compatible version' via Action14. (planetmaker)
frosch <frosch@openttd.org>
parents:
16256
diff
changeset
|
90 SetDParam(0, c->min_loadable_version); |
8a820ca2e1f7
(svn r20960) -Add: Allow setting 'minimal compatible version' via Action14. (planetmaker)
frosch <frosch@openttd.org>
parents:
16256
diff
changeset
|
91 y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_MIN_VERSION); |
8a820ca2e1f7
(svn r20960) -Add: Allow setting 'minimal compatible version' via Action14. (planetmaker)
frosch <frosch@openttd.org>
parents:
16256
diff
changeset
|
92 } |
15599
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
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 /* Prepare and draw MD5 sum */ |
14676
353df593bee0
(svn r19255) -Codechange: encapsulate GRFIdentifier in GRFConfig instead of subclassing it
yexo <yexo@openttd.org>
parents:
14645
diff
changeset
|
95 md5sumToString(buff, lastof(buff), c->ident.md5sum); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
96 SetDParamStr(0, buff); |
13017
ab07d6d87608
(svn r17511) -Codechange: Simplify ShowNewGRFInfo() by passing 'right' instead of 'width'.
frosch <frosch@openttd.org>
parents:
12879
diff
changeset
|
97 y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_MD5SUM); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
98 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
99 /* Show GRF parameter list */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
100 if (show_params) { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
101 if (c->num_params > 0) { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
102 GRFBuildParamList(buff, c, lastof(buff)); |
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:
9457
diff
changeset
|
103 SetDParam(0, STR_JUST_RAW_STRING); |
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:
9457
diff
changeset
|
104 SetDParamStr(1, buff); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
105 } else { |
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:
11524
diff
changeset
|
106 SetDParam(0, STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
107 } |
13017
ab07d6d87608
(svn r17511) -Codechange: Simplify ShowNewGRFInfo() by passing 'right' instead of 'width'.
frosch <frosch@openttd.org>
parents:
12879
diff
changeset
|
108 y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_PARAMETER); |
10126
c5ceca8952d5
(svn r14310) -Fix: don't show palette information in the newgrf lists of the network lobby.
rubidium <rubidium@openttd.org>
parents:
10115
diff
changeset
|
109 |
c5ceca8952d5
(svn r14310) -Fix: don't show palette information in the newgrf lists of the network lobby.
rubidium <rubidium@openttd.org>
parents:
10115
diff
changeset
|
110 /* Draw the palette of the NewGRF */ |
15593
7d5548deab3f
(svn r20253) -Codechange: change GRFConfig::windows_paletted into a bitmask/bitset
rubidium <rubidium@openttd.org>
parents:
15588
diff
changeset
|
111 SetDParamStr(0, (c->palette & GRFP_USE_WINDOWS) ? "Windows" : "DOS"); |
13017
ab07d6d87608
(svn r17511) -Codechange: Simplify ShowNewGRFInfo() by passing 'right' instead of 'width'.
frosch <frosch@openttd.org>
parents:
12879
diff
changeset
|
112 y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_PALETTE); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
113 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
114 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
115 /* Show flags */ |
13017
ab07d6d87608
(svn r17511) -Codechange: Simplify ShowNewGRFInfo() by passing 'right' instead of 'width'.
frosch <frosch@openttd.org>
parents:
12879
diff
changeset
|
116 if (c->status == GCS_NOT_FOUND) y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_NOT_FOUND); |
ab07d6d87608
(svn r17511) -Codechange: Simplify ShowNewGRFInfo() by passing 'right' instead of 'width'.
frosch <frosch@openttd.org>
parents:
12879
diff
changeset
|
117 if (c->status == GCS_DISABLED) y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_DISABLED); |
ab07d6d87608
(svn r17511) -Codechange: Simplify ShowNewGRFInfo() by passing 'right' instead of 'width'.
frosch <frosch@openttd.org>
parents:
12879
diff
changeset
|
118 if (HasBit(c->flags, GCF_COMPATIBLE)) y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_COMPATIBLE_LOADED); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
119 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
120 /* Draw GRF info if it exists */ |
14711
74b0a8a64ff5
(svn r19295) -Codechange: introduce wrapper functions for GRFConfig::name/info
yexo <yexo@openttd.org>
parents:
14676
diff
changeset
|
121 if (!StrEmpty(c->GetDescription())) { |
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:
9457
diff
changeset
|
122 SetDParam(0, STR_JUST_RAW_STRING); |
14711
74b0a8a64ff5
(svn r19295) -Codechange: introduce wrapper functions for GRFConfig::name/info
yexo <yexo@openttd.org>
parents:
14676
diff
changeset
|
123 SetDParamStr(1, c->GetDescription()); |
13017
ab07d6d87608
(svn r17511) -Codechange: Simplify ShowNewGRFInfo() by passing 'right' instead of 'width'.
frosch <frosch@openttd.org>
parents:
12879
diff
changeset
|
124 y = DrawStringMultiLine(x, right, y, bottom, STR_BLACK_STRING); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
125 } else { |
13017
ab07d6d87608
(svn r17511) -Codechange: Simplify ShowNewGRFInfo() by passing 'right' instead of 'width'.
frosch <frosch@openttd.org>
parents:
12879
diff
changeset
|
126 y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_NO_INFO); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
127 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
128 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
129 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
130 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
131 /** Enum referring to the widgets of the NewGRF parameters window */ |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
132 enum ShowNewGRFParametersWidgets { |
16086
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
133 GRFPAR_WIDGET_SHOW_NUMPAR, ///< #NWID_SELECTION to optionally display #GRFPAR_WIDGET_NUMPAR |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
134 GRFPAR_WIDGET_NUMPAR_DEC, ///< Button to decrease number of parameters |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
135 GRFPAR_WIDGET_NUMPAR_INC, ///< Button to increase number of parameters |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
136 GRFPAR_WIDGET_NUMPAR, ///< Optional number of parameters |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
137 GRFPAR_WIDGET_NUMPAR_TEXT, ///< Text description |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
138 GRFPAR_WIDGET_BACKGROUND, ///< Panel to draw the settings on |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
139 GRFPAR_WIDGET_SCROLLBAR, ///< Scrollbar to scroll through all settings |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
140 GRFPAR_WIDGET_ACCEPT, ///< Accept button |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
141 GRFPAR_WIDGET_RESET, ///< Reset button |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
142 GRFPAR_WIDGET_SHOW_DESCRIPTION, ///< #NWID_SELECTION to optionally display parameter descriptions |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
143 GRFPAR_WIDGET_DESCRIPTION, ///< Multi-line description of a parameter |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
144 }; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
145 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
146 /** |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
147 * Window for setting the parameters of a NewGRF. |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
148 */ |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
149 struct NewGRFParametersWindow : public Window { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
150 static GRFParameterInfo dummy_parameter_info; ///< Dummy info in case a newgrf didn't provide info about some parameter. |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
151 GRFConfig *grf_config; ///< Set the parameters of this GRFConfig. |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
152 uint clicked_button; ///< The row in which a button was clicked or UINT_MAX. |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
153 bool clicked_increase; ///< True if the increase button was clicked, false for the decrease button. |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
154 int timeout; ///< How long before we unpress the last-pressed button? |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
155 uint clicked_row; ///< The selected parameter |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
156 int line_height; ///< Height of a row in the matrix widget. |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
157 Scrollbar *vscroll; |
16086
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
158 bool action14present; ///< True if action14 information is present. |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
159 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
160 NewGRFParametersWindow(const WindowDesc *desc, GRFConfig *c) : Window(), |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
161 grf_config(c), |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
162 clicked_button(UINT_MAX), |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
163 timeout(0), |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
164 clicked_row(UINT_MAX) |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
165 { |
16086
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
166 this->action14present = (c->num_valid_params != lengthof(c->param) || c->param_info.Length() != 0); |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
167 |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
168 this->CreateNestedTree(desc); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
169 this->vscroll = this->GetScrollbar(GRFPAR_WIDGET_SCROLLBAR); |
16086
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
170 this->GetWidget<NWidgetStacked>(GRFPAR_WIDGET_SHOW_NUMPAR)->SetDisplayedPlane(this->action14present ? SZSP_HORIZONTAL : 0); |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
171 this->GetWidget<NWidgetStacked>(GRFPAR_WIDGET_SHOW_DESCRIPTION)->SetDisplayedPlane(this->action14present ? 0 : SZSP_HORIZONTAL); |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
172 this->FinishInitNested(desc); // Initializes 'this->line_height' as side effect. |
16086
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
173 |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
174 this->InvalidateData(); |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
175 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
176 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
177 /** |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
178 * Get a dummy parameter-info object with default information. |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
179 * @param nr The param number that should be changed. |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
180 * @return GRFParameterInfo with dummy information about the given parameter. |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
181 */ |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
182 static GRFParameterInfo *GetDummyParameterInfo(uint nr) |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
183 { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
184 dummy_parameter_info.param_nr = nr; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
185 return &dummy_parameter_info; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
186 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
187 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
188 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
189 { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
190 switch (widget) { |
16086
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
191 case GRFPAR_WIDGET_NUMPAR_DEC: |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
192 case GRFPAR_WIDGET_NUMPAR_INC: { |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
193 size->width = size->height = FONT_HEIGHT_NORMAL; |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
194 break; |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
195 } |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
196 |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
197 case GRFPAR_WIDGET_NUMPAR: { |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
198 SetDParam(0, 999); |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
199 Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data); |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
200 d.width += padding.width; |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
201 d.height += padding.height; |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
202 *size = maxdim(*size, d); |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
203 break; |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
204 } |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
205 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
206 case GRFPAR_WIDGET_BACKGROUND: |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
207 this->line_height = FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
208 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
209 resize->width = 1; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
210 resize->height = this->line_height; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
211 size->height = GB(this->GetWidget<NWidgetCore>(widget)->widget_data, MAT_ROW_START, MAT_ROW_BITS) * this->line_height; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
212 break; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
213 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
214 case GRFPAR_WIDGET_DESCRIPTION: |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
215 size->height = max<uint>(size->height, FONT_HEIGHT_NORMAL * 4 + WD_TEXTPANEL_TOP + WD_TEXTPANEL_BOTTOM); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
216 break; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
217 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
218 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
219 |
16086
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
220 virtual void SetStringParameters(int widget) const |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
221 { |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
222 switch (widget) { |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
223 case GRFPAR_WIDGET_NUMPAR: |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
224 SetDParam(0, this->vscroll->GetCount()); |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
225 break; |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
226 } |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
227 } |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
228 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
229 virtual void DrawWidget(const Rect &r, int widget) const |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
230 { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
231 if (widget == GRFPAR_WIDGET_DESCRIPTION) { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
232 const GRFParameterInfo *par_info = (this->clicked_row < this->grf_config->param_info.Length()) ? this->grf_config->param_info[this->clicked_row] : NULL; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
233 if (par_info == NULL) return; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
234 const char *desc = GetGRFStringFromGRFText(par_info->desc); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
235 if (desc == NULL) return; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
236 DrawStringMultiLine(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + WD_TEXTPANEL_TOP, r.bottom - WD_TEXTPANEL_BOTTOM, desc, TC_BLACK); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
237 return; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
238 } else if (widget != GRFPAR_WIDGET_BACKGROUND) { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
239 return; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
240 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
241 |
16441
86fd9bcc9d2f
(svn r21157) -Codechange: remove information about the text direction out of the language "list"
rubidium <rubidium@openttd.org>
parents:
16395
diff
changeset
|
242 bool rtl = _current_text_dir == TD_RTL; |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
243 uint buttons_left = rtl ? r.right - 23 : r.left + 4; |
15804
cefe74c2f556
(svn r20479) -Change: Use 'Buttons Name: Value' layout for AI and NewGRF parameter GUI.
frosch <frosch@openttd.org>
parents:
15787
diff
changeset
|
244 uint text_left = r.left + (rtl ? WD_FRAMERECT_LEFT : 28); |
cefe74c2f556
(svn r20479) -Change: Use 'Buttons Name: Value' layout for AI and NewGRF parameter GUI.
frosch <frosch@openttd.org>
parents:
15787
diff
changeset
|
245 uint text_right = r.right - (rtl ? 28 : WD_FRAMERECT_RIGHT); |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
246 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
247 int y = r.top; |
16086
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
248 for (uint i = this->vscroll->GetPosition(); this->vscroll->IsVisible(i) && i < this->vscroll->GetCount(); i++) { |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
249 GRFParameterInfo *par_info = (i < this->grf_config->param_info.Length()) ? this->grf_config->param_info[i] : NULL; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
250 if (par_info == NULL) par_info = GetDummyParameterInfo(i); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
251 uint32 current_value = par_info->GetValue(this->grf_config); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
252 bool selected = (i == this->clicked_row); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
253 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
254 if (par_info->type == PTYPE_BOOL) { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
255 DrawFrameRect(buttons_left, y + 2, buttons_left + 19, y + 10, (current_value != 0) ? COLOUR_GREEN : COLOUR_RED, (current_value != 0) ? FR_LOWERED : FR_NONE); |
15804
cefe74c2f556
(svn r20479) -Change: Use 'Buttons Name: Value' layout for AI and NewGRF parameter GUI.
frosch <frosch@openttd.org>
parents:
15787
diff
changeset
|
256 SetDParam(2, par_info->GetValue(this->grf_config) == 0 ? STR_CONFIG_SETTING_OFF : STR_CONFIG_SETTING_ON); |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
257 } else if (par_info->type == PTYPE_UINT_ENUM) { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
258 DrawArrowButtons(buttons_left, y + 2, COLOUR_YELLOW, (this->clicked_button == i) ? 1 + (this->clicked_increase != rtl) : 0, current_value > par_info->min_value, current_value < par_info->max_value); |
15804
cefe74c2f556
(svn r20479) -Change: Use 'Buttons Name: Value' layout for AI and NewGRF parameter GUI.
frosch <frosch@openttd.org>
parents:
15787
diff
changeset
|
259 SetDParam(2, STR_JUST_INT); |
cefe74c2f556
(svn r20479) -Change: Use 'Buttons Name: Value' layout for AI and NewGRF parameter GUI.
frosch <frosch@openttd.org>
parents:
15787
diff
changeset
|
260 SetDParam(3, current_value); |
16250
dd6d2c758c96
(svn r20951) -Codechange: Add SmallMap::Contains() and use it.
frosch <frosch@openttd.org>
parents:
16116
diff
changeset
|
261 if (par_info->value_names.Contains(current_value)) { |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
262 const char *label = GetGRFStringFromGRFText(par_info->value_names.Find(current_value)->second); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
263 if (label != NULL) { |
15804
cefe74c2f556
(svn r20479) -Change: Use 'Buttons Name: Value' layout for AI and NewGRF parameter GUI.
frosch <frosch@openttd.org>
parents:
15787
diff
changeset
|
264 SetDParam(2, STR_JUST_RAW_STRING); |
cefe74c2f556
(svn r20479) -Change: Use 'Buttons Name: Value' layout for AI and NewGRF parameter GUI.
frosch <frosch@openttd.org>
parents:
15787
diff
changeset
|
265 SetDParamStr(3, label); |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
266 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
267 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
268 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
269 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
270 const char *name = GetGRFStringFromGRFText(par_info->name); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
271 if (name != NULL) { |
15804
cefe74c2f556
(svn r20479) -Change: Use 'Buttons Name: Value' layout for AI and NewGRF parameter GUI.
frosch <frosch@openttd.org>
parents:
15787
diff
changeset
|
272 SetDParam(0, STR_JUST_RAW_STRING); |
cefe74c2f556
(svn r20479) -Change: Use 'Buttons Name: Value' layout for AI and NewGRF parameter GUI.
frosch <frosch@openttd.org>
parents:
15787
diff
changeset
|
273 SetDParamStr(1, name); |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
274 } else { |
15804
cefe74c2f556
(svn r20479) -Change: Use 'Buttons Name: Value' layout for AI and NewGRF parameter GUI.
frosch <frosch@openttd.org>
parents:
15787
diff
changeset
|
275 SetDParam(0, STR_NEWGRF_PARAMETERS_DEFAULT_NAME); |
cefe74c2f556
(svn r20479) -Change: Use 'Buttons Name: Value' layout for AI and NewGRF parameter GUI.
frosch <frosch@openttd.org>
parents:
15787
diff
changeset
|
276 SetDParam(1, i + 1); |
15605
391d97ec4083
(svn r20268) -Add: append 'On'/'Off' after the name for boolean NewGRF settings
yexo <yexo@openttd.org>
parents:
15603
diff
changeset
|
277 } |
15804
cefe74c2f556
(svn r20479) -Change: Use 'Buttons Name: Value' layout for AI and NewGRF parameter GUI.
frosch <frosch@openttd.org>
parents:
15787
diff
changeset
|
278 |
cefe74c2f556
(svn r20479) -Change: Use 'Buttons Name: Value' layout for AI and NewGRF parameter GUI.
frosch <frosch@openttd.org>
parents:
15787
diff
changeset
|
279 DrawString(text_left, text_right, y + WD_MATRIX_TOP, STR_NEWGRF_PARAMETERS_SETTING, selected ? TC_WHITE : TC_LIGHT_BLUE); |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
280 y += this->line_height; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
281 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
282 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
283 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
284 virtual void OnClick(Point pt, int widget, int click_count) |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
285 { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
286 switch (widget) { |
16086
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
287 case GRFPAR_WIDGET_NUMPAR_DEC: |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
288 if (!this->action14present && this->grf_config->num_params > 0) { |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
289 this->grf_config->num_params--; |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
290 this->InvalidateData(); |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
291 SetWindowClassesDirty(WC_GAME_OPTIONS); // Is always the newgrf window |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
292 } |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
293 break; |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
294 |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
295 case GRFPAR_WIDGET_NUMPAR_INC: { |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
296 GRFConfig *c = this->grf_config; |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
297 if (!this->action14present && c->num_params < c->num_valid_params) { |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
298 c->param[c->num_params++] = 0; |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
299 this->InvalidateData(); |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
300 SetWindowClassesDirty(WC_GAME_OPTIONS); // Is always the newgrf window |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
301 } |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
302 break; |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
303 } |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
304 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
305 case GRFPAR_WIDGET_BACKGROUND: { |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
306 uint num = this->vscroll->GetScrolledRowFromWidget(pt.y, this, GRFPAR_WIDGET_BACKGROUND); |
16086
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
307 if (num >= this->vscroll->GetCount()) break; |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
308 if (this->clicked_row != num) { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
309 DeleteChildWindows(WC_QUERY_STRING); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
310 this->clicked_row = num; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
311 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
312 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
313 const NWidgetBase *wid = this->GetWidget<NWidgetBase>(GRFPAR_WIDGET_BACKGROUND); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
314 int x = pt.x - wid->pos_x; |
16441
86fd9bcc9d2f
(svn r21157) -Codechange: remove information about the text direction out of the language "list"
rubidium <rubidium@openttd.org>
parents:
16395
diff
changeset
|
315 if (_current_text_dir == TD_RTL) x = wid->current_x - x; |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
316 x -= 4; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
317 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
318 GRFParameterInfo *par_info = (num < this->grf_config->param_info.Length()) ? this->grf_config->param_info[num] : NULL; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
319 if (par_info == NULL) par_info = GetDummyParameterInfo(num); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
320 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
321 /* One of the arrows is clicked */ |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
322 if (IsInsideMM(x, 0, 21)) { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
323 uint32 val = par_info->GetValue(this->grf_config); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
324 if (par_info->type == PTYPE_BOOL) { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
325 val = !val; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
326 } else { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
327 if (x >= 10) { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
328 /* Increase button clicked */ |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
329 if (val < par_info->max_value) val++; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
330 this->clicked_increase = true; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
331 } else { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
332 /* Decrease button clicked */ |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
333 if (val > par_info->min_value) val--; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
334 this->clicked_increase = false; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
335 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
336 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
337 par_info->SetValue(this->grf_config, val); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
338 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
339 this->clicked_button = num; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
340 this->timeout = 5; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
341 } else if (par_info->type == PTYPE_UINT_ENUM && click_count >= 2) { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
342 /* Display a query box so users can enter a custom value. */ |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
343 SetDParam(0, this->grf_config->param[num]); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
344 ShowQueryString(STR_JUST_INT, STR_CONFIG_SETTING_QUERY_CAPTION, 10, 100, this, CS_NUMERAL, QSF_NONE); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
345 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
346 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
347 this->SetDirty(); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
348 break; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
349 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
350 |
15920
74e5e0907a80
(svn r20604) -Feature: add a reset button to the newgrf parameters window
yexo <yexo@openttd.org>
parents:
15917
diff
changeset
|
351 case GRFPAR_WIDGET_RESET: |
74e5e0907a80
(svn r20604) -Feature: add a reset button to the newgrf parameters window
yexo <yexo@openttd.org>
parents:
15917
diff
changeset
|
352 this->grf_config->SetParameterDefaults(); |
16086
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
353 this->InvalidateData(); |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
354 SetWindowClassesDirty(WC_GAME_OPTIONS); // Is always the newgrf window |
15920
74e5e0907a80
(svn r20604) -Feature: add a reset button to the newgrf parameters window
yexo <yexo@openttd.org>
parents:
15917
diff
changeset
|
355 break; |
74e5e0907a80
(svn r20604) -Feature: add a reset button to the newgrf parameters window
yexo <yexo@openttd.org>
parents:
15917
diff
changeset
|
356 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
357 case GRFPAR_WIDGET_ACCEPT: |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
358 delete this; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
359 break; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
360 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
361 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
362 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
363 virtual void OnQueryTextFinished(char *str) |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
364 { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
365 if (StrEmpty(str)) return; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
366 int32 value = atoi(str); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
367 GRFParameterInfo *par_info = ((uint)this->clicked_row < this->grf_config->param_info.Length()) ? this->grf_config->param_info[this->clicked_row] : NULL; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
368 if (par_info == NULL) par_info = GetDummyParameterInfo(this->clicked_row); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
369 uint32 val = Clamp<uint32>(value, par_info->min_value, par_info->max_value); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
370 par_info->SetValue(this->grf_config, val); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
371 this->SetDirty(); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
372 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
373 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
374 virtual void OnResize() |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
375 { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
376 NWidgetCore *nwi = this->GetWidget<NWidgetCore>(GRFPAR_WIDGET_BACKGROUND); |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
377 this->vscroll->SetCapacity(nwi->current_y / this->line_height); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
378 nwi->widget_data = (this->vscroll->GetCapacity() << MAT_ROW_START) + (1 << MAT_COL_START); |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
379 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
380 |
16086
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
381 virtual void OnInvalidateData(int data) |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
382 { |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
383 if (!this->action14present) { |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
384 this->SetWidgetDisabledState(GRFPAR_WIDGET_NUMPAR_DEC, this->grf_config->num_params == 0); |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
385 this->SetWidgetDisabledState(GRFPAR_WIDGET_NUMPAR_INC, this->grf_config->num_params >= this->grf_config->num_valid_params); |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
386 } |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
387 |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
388 this->vscroll->SetCount(this->action14present ? this->grf_config->num_valid_params : this->grf_config->num_params); |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
389 if (this->clicked_row != UINT_MAX && this->clicked_row >= this->vscroll->GetCount()) { |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
390 this->clicked_row = UINT_MAX; |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
391 DeleteChildWindows(WC_QUERY_STRING); |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
392 } |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
393 } |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
394 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
395 virtual void OnTick() |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
396 { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
397 if (--this->timeout == 0) { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
398 this->clicked_button = UINT_MAX; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
399 this->SetDirty(); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
400 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
401 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
402 }; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
403 GRFParameterInfo NewGRFParametersWindow::dummy_parameter_info(0); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
404 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
405 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
406 static const NWidgetPart _nested_newgrf_parameter_widgets[] = { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
407 NWidget(NWID_HORIZONTAL), |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
408 NWidget(WWT_CLOSEBOX, COLOUR_MAUVE), |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
409 NWidget(WWT_CAPTION, COLOUR_MAUVE), SetDataTip(STR_NEWGRF_PARAMETERS_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
410 EndContainer(), |
16086
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
411 NWidget(NWID_SELECTION, INVALID_COLOUR, GRFPAR_WIDGET_SHOW_NUMPAR), |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
412 NWidget(WWT_PANEL, COLOUR_MAUVE), SetResize(1, 0), SetFill(1, 0), SetPIP(4, 0, 4), |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
413 NWidget(NWID_HORIZONTAL), SetPIP(4, 0, 4), |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
414 NWidget(WWT_PUSHARROWBTN, COLOUR_YELLOW, GRFPAR_WIDGET_NUMPAR_DEC), SetMinimalSize(12, 12), SetDataTip(AWV_DECREASE, STR_NULL), |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
415 NWidget(WWT_PUSHARROWBTN, COLOUR_YELLOW, GRFPAR_WIDGET_NUMPAR_INC), SetMinimalSize(12, 12), SetDataTip(AWV_INCREASE, STR_NULL), |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
416 NWidget(WWT_TEXT, COLOUR_MAUVE, GRFPAR_WIDGET_NUMPAR), SetResize(1, 0), SetFill(1, 0), SetPadding(0, 0, 0, 4), SetDataTip(STR_NEWGRF_PARAMETERS_NUM_PARAM, STR_NULL), |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
417 EndContainer(), |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
418 EndContainer(), |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
419 EndContainer(), |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
420 NWidget(NWID_HORIZONTAL), |
15778
4f4c3160cca8
(svn r20452) -Codechange: Remove NWidgetCore::FindScrollbar() and associate scrollbar explicitly using a NWidgetPart via SetScrollbar().
frosch <frosch@openttd.org>
parents:
15626
diff
changeset
|
421 NWidget(WWT_MATRIX, COLOUR_MAUVE, GRFPAR_WIDGET_BACKGROUND), SetMinimalSize(188, 182), SetResize(1, 1), SetFill(1, 0), SetDataTip(0x501, STR_NULL), SetScrollbar(GRFPAR_WIDGET_SCROLLBAR), |
15787
6c4bec3b8401
(svn r20461) -Codechange: Replace WWT_HSCROLLBAR, WWT_SCROLLBAR and WWT_SCROLL2BAR with NWID_HSCROLLBAR and NWID_VSCROLLBAR.
frosch <frosch@openttd.org>
parents:
15779
diff
changeset
|
422 NWidget(NWID_VSCROLLBAR, COLOUR_MAUVE, GRFPAR_WIDGET_SCROLLBAR), |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
423 EndContainer(), |
16086
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
424 NWidget(NWID_SELECTION, INVALID_COLOUR, GRFPAR_WIDGET_SHOW_DESCRIPTION), |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
425 NWidget(WWT_PANEL, COLOUR_MAUVE, GRFPAR_WIDGET_DESCRIPTION), SetResize(1, 0), SetFill(1, 0), |
8963162a35da
(svn r20779) -Add [FS#4025]: If GRFs do not have action14 parameter information, allow to set the number of parameters in the GUI explicitly.
frosch <frosch@openttd.org>
parents:
16006
diff
changeset
|
426 EndContainer(), |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
427 EndContainer(), |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
428 NWidget(NWID_HORIZONTAL), |
15920
74e5e0907a80
(svn r20604) -Feature: add a reset button to the newgrf parameters window
yexo <yexo@openttd.org>
parents:
15917
diff
changeset
|
429 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), |
74e5e0907a80
(svn r20604) -Feature: add a reset button to the newgrf parameters window
yexo <yexo@openttd.org>
parents:
15917
diff
changeset
|
430 NWidget(WWT_PUSHTXTBTN, COLOUR_MAUVE, GRFPAR_WIDGET_ACCEPT), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_NEWGRF_PARAMETERS_CLOSE, STR_NULL), |
74e5e0907a80
(svn r20604) -Feature: add a reset button to the newgrf parameters window
yexo <yexo@openttd.org>
parents:
15917
diff
changeset
|
431 NWidget(WWT_PUSHTXTBTN, COLOUR_MAUVE, GRFPAR_WIDGET_RESET), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_NEWGRF_PARAMETERS_RESET, STR_NEWGRF_PARAMETERS_RESET_TOOLTIP), |
74e5e0907a80
(svn r20604) -Feature: add a reset button to the newgrf parameters window
yexo <yexo@openttd.org>
parents:
15917
diff
changeset
|
432 EndContainer(), |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
433 NWidget(WWT_RESIZEBOX, COLOUR_MAUVE), |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
434 EndContainer(), |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
435 }; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
436 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
437 /* Window definition for the change grf parameters window */ |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
438 static const WindowDesc _newgrf_parameters_desc( |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
439 WDP_CENTER, 500, 208, |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
440 WC_GRF_PARAMETERS, WC_NONE, |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
441 WDF_UNCLICK_BUTTONS, |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
442 _nested_newgrf_parameter_widgets, lengthof(_nested_newgrf_parameter_widgets) |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
443 ); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
444 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
445 void OpenGRFParameterWindow(GRFConfig *c) |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
446 { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
447 DeleteWindowByClass(WC_GRF_PARAMETERS); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
448 new NewGRFParametersWindow(&_newgrf_parameters_desc, c); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
449 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
450 |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
451 static GRFPresetList _grf_preset_list; |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
452 |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
453 class DropDownListPresetItem : public DropDownListItem { |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
454 public: |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
455 DropDownListPresetItem(int result) : DropDownListItem(result, false) {} |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
456 |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
457 virtual ~DropDownListPresetItem() {} |
9864
199cb67d074d
(svn r14009) -Cleanup (r14008): Bad whitespace...
peter1138 <peter1138@openttd.org>
parents:
9863
diff
changeset
|
458 |
9863
3db7ce31355e
(svn r14008) -Fix (r14004): NewGRF preset drop down list not working
peter1138 <peter1138@openttd.org>
parents:
9760
diff
changeset
|
459 bool Selectable() const |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
460 { |
9863
3db7ce31355e
(svn r14008) -Fix (r14004): NewGRF preset drop down list not working
peter1138 <peter1138@openttd.org>
parents:
9760
diff
changeset
|
461 return true; |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
462 } |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
463 |
11425
532a1c74074d
(svn r15783) -Codechange: make the dropdown draw code pass around the left/right instead of the x and width to make drawing text at offsets easier.
rubidium <rubidium@openttd.org>
parents:
11373
diff
changeset
|
464 void Draw(int left, int right, int top, int bottom, bool sel, int bg_colour) const |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
465 { |
11425
532a1c74074d
(svn r15783) -Codechange: make the dropdown draw code pass around the left/right instead of the x and width to make drawing text at offsets easier.
rubidium <rubidium@openttd.org>
parents:
11373
diff
changeset
|
466 DrawString(left + 2, right + 2, top, _grf_preset_list[this->result], sel ? TC_WHITE : TC_BLACK); |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
467 } |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
468 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
469 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
470 static void NewGRFConfirmationCallback(Window *w, bool confirmed); |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
471 |
11795
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
472 /** Names of the manage newgrfs window widgets. */ |
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
473 enum ShowNewGRFStateWidgets { |
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
474 SNGRFS_PRESET_LIST, |
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
475 SNGRFS_PRESET_SAVE, |
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
476 SNGRFS_PRESET_DELETE, |
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
477 SNGRFS_ADD, |
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
478 SNGRFS_REMOVE, |
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
479 SNGRFS_MOVE_UP, |
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
480 SNGRFS_MOVE_DOWN, |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
481 SNGRFS_FILTER, |
11795
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
482 SNGRFS_FILE_LIST, |
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
483 SNGRFS_SCROLLBAR, |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
484 SNGRFS_AVAIL_LIST, |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
485 SNGRFS_SCROLL2BAR, |
15204
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
486 SNGRFS_NEWGRF_INFO_TITLE, |
11795
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
487 SNGRFS_NEWGRF_INFO, |
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
488 SNGRFS_SET_PARAMETERS, |
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
489 SNGRFS_TOGGLE_PALETTE, |
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
490 SNGRFS_APPLY_CHANGES, |
15211
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
491 SNGRFS_RESCAN_FILES, |
16394
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
492 SNGRFS_RESCAN_FILES2, |
11795
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
493 SNGRFS_CONTENT_DOWNLOAD, |
16394
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
494 SNGRFS_CONTENT_DOWNLOAD2, |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
495 SNGRFS_SHOW_REMOVE, ///< Select active list buttons (0 = normal, 1 = simple layout). |
16395
2bef44471f4d
(svn r21111) -Add: Remove the buttons below the newgrf details if the list is not editable.
alberth <alberth@openttd.org>
parents:
16394
diff
changeset
|
496 SNGRFS_SHOW_APPLY, ///< Select display of the buttons below the 'details'. |
11795
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
497 }; |
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
498 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
499 /** |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
500 * Window for showing NewGRF files |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
501 */ |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
502 struct NewGRFWindow : public QueryStringBaseWindow { |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
503 typedef GUIList<const GRFConfig *> GUIGRFConfigList; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
504 |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
505 static const uint EDITBOX_MAX_SIZE = 50; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
506 static const uint EDITBOX_MAX_LENGTH = 300; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
507 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
508 static Listing last_sorting; ///< Default sorting of #GUIGRFConfigList. |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
509 static Filtering last_filtering; ///< Default filtering of #GUIGRFConfigList. |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
510 static GUIGRFConfigList::SortFunction * const sorter_funcs[]; ///< Sort functions of the #GUIGRFConfigList. |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
511 static GUIGRFConfigList::FilterFunction * const filter_funcs[]; ///< Filter functions of the #GUIGRFConfigList. |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
512 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
513 GUIGRFConfigList avails; ///< Available (non-active) grfs. |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
514 const GRFConfig *avail_sel; ///< Currently selected available grf. \c NULL is none is selected. |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
515 int avail_pos; ///< Index of #avail_sel if existing, else \c -1. |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
516 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
517 GRFConfig *actives; ///< Temporary active grf list to which changes are made. |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
518 GRFConfig *active_sel; ///< Selected active grf item. |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
519 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
520 GRFConfig **orig_list; ///< List active grfs in the game. Used as initial value, may be updated by the window. |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
521 bool editable; ///< Is the window editable? |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
522 bool show_params; ///< Are the grf-parameters shown in the info-panel? |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
523 bool execute; ///< On pressing 'apply changes' are grf changes applied immediately, or only list is updated. |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
524 int preset; ///< Selected preset. |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
525 |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
526 Scrollbar *vscroll; |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
527 Scrollbar *vscroll2; |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
528 |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
529 NewGRFWindow(const WindowDesc *desc, bool editable, bool show_params, bool execute, GRFConfig **orig_list) : QueryStringBaseWindow(EDITBOX_MAX_SIZE) |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
530 { |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
531 this->avail_sel = NULL; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
532 this->avail_pos = -1; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
533 this->active_sel = NULL; |
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
534 this->actives = NULL; |
15202
e9db5d2f634e
(svn r19831) -Codechange: Rename formal parameters of the constructor to match data member variable names.
alberth <alberth@openttd.org>
parents:
15201
diff
changeset
|
535 this->orig_list = orig_list; |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
536 this->editable = editable; |
15202
e9db5d2f634e
(svn r19831) -Codechange: Rename formal parameters of the constructor to match data member variable names.
alberth <alberth@openttd.org>
parents:
15201
diff
changeset
|
537 this->execute = execute; |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
538 this->show_params = show_params; |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
539 this->preset = -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
|
540 |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
541 CopyGRFConfigList(&this->actives, *orig_list, false); |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
542 GetGRFPresetList(&_grf_preset_list); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
543 |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
544 this->CreateNestedTree(desc); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
545 this->vscroll = this->GetScrollbar(SNGRFS_SCROLLBAR); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
546 this->vscroll2 = this->GetScrollbar(SNGRFS_SCROLL2BAR); |
16394
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
547 |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
548 this->GetWidget<NWidgetStacked>(SNGRFS_SHOW_REMOVE)->SetDisplayedPlane(this->editable ? 0 : 1); |
16395
2bef44471f4d
(svn r21111) -Add: Remove the buttons below the newgrf details if the list is not editable.
alberth <alberth@openttd.org>
parents:
16394
diff
changeset
|
549 this->GetWidget<NWidgetStacked>(SNGRFS_SHOW_APPLY)->SetDisplayedPlane(this->editable ? 0 : SZSP_HORIZONTAL); |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
550 this->FinishInitNested(desc); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
551 |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
552 InitializeTextBuffer(&this->text, this->edit_str_buf, this->edit_str_size, EDITBOX_MAX_LENGTH); |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
553 this->SetFocusedWidget(SNGRFS_FILTER); |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
554 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
555 this->avails.SetListing(this->last_sorting); |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
556 this->avails.SetFiltering(this->last_filtering); |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
557 this->avails.SetSortFuncs(this->sorter_funcs); |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
558 this->avails.SetFilterFuncs(this->filter_funcs); |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
559 this->avails.ForceRebuild(); |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
560 |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
561 this->OnInvalidateData(2); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
562 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
563 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
564 ~NewGRFWindow() |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
565 { |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
566 DeleteWindowByClass(WC_GRF_PARAMETERS); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
567 |
10910
9276e5a96995
(svn r15245) -Fix: don't "save" the NewGRF settings on closing the NewGRF window when the content of the window isn't editable
rubidium <rubidium@openttd.org>
parents:
10890
diff
changeset
|
568 if (this->editable && !this->execute) { |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
569 CopyGRFConfigList(this->orig_list, this->actives, true); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
570 ResetGRFConfig(false); |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
571 ReloadNewGRFData(); |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
572 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
573 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
574 /* Remove the temporary copy of grf-list used in window */ |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
575 ClearGRFConfigList(&this->actives); |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
576 _grf_preset_list.Clear(); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
577 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
578 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
579 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
580 { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
581 switch (widget) { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
582 case SNGRFS_FILE_LIST: |
15205
0dca88008a3a
(svn r19834) -Change: Replace matrix list widget in NewGRF gui by a panel with black background.
alberth <alberth@openttd.org>
parents:
15204
diff
changeset
|
583 resize->height = max(12, FONT_HEIGHT_NORMAL + 2); |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
584 size->height = max(size->height, WD_FRAMERECT_TOP + 6 * resize->height + WD_FRAMERECT_BOTTOM); |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
585 break; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
586 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
587 case SNGRFS_AVAIL_LIST: |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
588 resize->height = max(12, FONT_HEIGHT_NORMAL + 2); |
15205
0dca88008a3a
(svn r19834) -Change: Replace matrix list widget in NewGRF gui by a panel with black background.
alberth <alberth@openttd.org>
parents:
15204
diff
changeset
|
589 size->height = max(size->height, WD_FRAMERECT_TOP + 8 * resize->height + WD_FRAMERECT_BOTTOM); |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
590 break; |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
591 |
15204
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
592 case SNGRFS_NEWGRF_INFO_TITLE: { |
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
593 Dimension dim = GetStringBoundingBox(STR_NEWGRF_SETTINGS_INFO_TITLE); |
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
594 size->height = max(size->height, dim.height + WD_FRAMETEXT_TOP + WD_FRAMETEXT_BOTTOM); |
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
595 size->width = max(size->width, dim.width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT); |
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
596 break; |
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
597 } |
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
598 |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
599 case SNGRFS_NEWGRF_INFO: |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
600 size->height = max(size->height, WD_FRAMERECT_TOP + 10 * FONT_HEIGHT_NORMAL + WD_FRAMERECT_BOTTOM + padding.height + 2); |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
601 break; |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
602 |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
603 case SNGRFS_PRESET_LIST: { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
604 Dimension d = GetStringBoundingBox(STR_NUM_CUSTOM); |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
605 for (uint i = 0; i < _grf_preset_list.Length(); i++) { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
606 if (_grf_preset_list[i] != NULL) { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
607 SetDParamStr(0, _grf_preset_list[i]); |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
608 d = maxdim(d, GetStringBoundingBox(STR_JUST_RAW_STRING)); |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
609 } |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
610 } |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
611 d.width += padding.width; |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
612 *size = maxdim(d, *size); |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
613 break; |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
614 } |
15194
2d9d9be17bbe
(svn r19823) -Fix: Ensure that both texts of the newgrf gui download button fit.
alberth <alberth@openttd.org>
parents:
15185
diff
changeset
|
615 |
16394
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
616 case SNGRFS_CONTENT_DOWNLOAD: |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
617 case SNGRFS_CONTENT_DOWNLOAD2: { |
15194
2d9d9be17bbe
(svn r19823) -Fix: Ensure that both texts of the newgrf gui download button fit.
alberth <alberth@openttd.org>
parents:
15185
diff
changeset
|
618 Dimension d = GetStringBoundingBox(STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_BUTTON); |
2d9d9be17bbe
(svn r19823) -Fix: Ensure that both texts of the newgrf gui download button fit.
alberth <alberth@openttd.org>
parents:
15185
diff
changeset
|
619 *size = maxdim(d, GetStringBoundingBox(STR_INTRO_ONLINE_CONTENT)); |
2d9d9be17bbe
(svn r19823) -Fix: Ensure that both texts of the newgrf gui download button fit.
alberth <alberth@openttd.org>
parents:
15185
diff
changeset
|
620 size->width += padding.width; |
2d9d9be17bbe
(svn r19823) -Fix: Ensure that both texts of the newgrf gui download button fit.
alberth <alberth@openttd.org>
parents:
15185
diff
changeset
|
621 size->height += padding.height; |
2d9d9be17bbe
(svn r19823) -Fix: Ensure that both texts of the newgrf gui download button fit.
alberth <alberth@openttd.org>
parents:
15185
diff
changeset
|
622 break; |
2d9d9be17bbe
(svn r19823) -Fix: Ensure that both texts of the newgrf gui download button fit.
alberth <alberth@openttd.org>
parents:
15185
diff
changeset
|
623 } |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
624 } |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
625 } |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
626 |
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:
13277
diff
changeset
|
627 virtual void OnResize() |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
628 { |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
629 this->vscroll->SetCapacityFromWidget(this, SNGRFS_FILE_LIST); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
630 this->vscroll2->SetCapacityFromWidget(this, SNGRFS_AVAIL_LIST); |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
631 } |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
632 |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
633 virtual void SetStringParameters(int widget) const |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
634 { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
635 switch (widget) { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
636 case SNGRFS_PRESET_LIST: |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
637 if (this->preset == -1) { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
638 SetDParam(0, STR_NUM_CUSTOM); |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
639 } else { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
640 SetDParam(0, STR_JUST_RAW_STRING); |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
641 SetDParamStr(1, _grf_preset_list[this->preset]); |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
642 } |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
643 break; |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
644 } |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
645 } |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
646 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
647 virtual void OnPaint() |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
648 { |
9273
72a6d2e60834
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents:
9207
diff
changeset
|
649 this->DrawWidgets(); |
16393
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
650 if (this->editable) this->DrawEditBox(SNGRFS_FILTER); |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
651 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
652 |
15620
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
653 /** |
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
654 * Pick the palette for the sprite of the grf to display. |
15207
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
655 * @param c grf to display. |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
656 * @return Palette for the sprite. |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
657 */ |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
658 FORCEINLINE PaletteID GetPalette(const GRFConfig *c) const |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
659 { |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
660 PaletteID pal; |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
661 |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
662 /* Pick a colour */ |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
663 switch (c->status) { |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
664 case GCS_NOT_FOUND: |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
665 case GCS_DISABLED: |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
666 pal = PALETTE_TO_RED; |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
667 break; |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
668 case GCS_ACTIVATED: |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
669 pal = PALETTE_TO_GREEN; |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
670 break; |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
671 default: |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
672 pal = PALETTE_TO_BLUE; |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
673 break; |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
674 } |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
675 |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
676 /* Do not show a "not-failure" colour when it actually failed to load */ |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
677 if (pal != PALETTE_TO_RED) { |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
678 if (HasBit(c->flags, GCF_STATIC)) { |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
679 pal = PALETTE_TO_GREY; |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
680 } else if (HasBit(c->flags, GCF_COMPATIBLE)) { |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
681 pal = PALETTE_TO_ORANGE; |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
682 } |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
683 } |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
684 |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
685 return pal; |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
686 } |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
687 |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
688 virtual void DrawWidget(const Rect &r, int widget) const |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
689 { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
690 switch (widget) { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
691 case SNGRFS_FILE_LIST: { |
15205
0dca88008a3a
(svn r19834) -Change: Replace matrix list widget in NewGRF gui by a panel with black background.
alberth <alberth@openttd.org>
parents:
15204
diff
changeset
|
692 GfxFillRect(r.left + 1, r.top + 1, r.right - 1, r.bottom - 1, 0xD7); |
0dca88008a3a
(svn r19834) -Change: Replace matrix list widget in NewGRF gui by a panel with black background.
alberth <alberth@openttd.org>
parents:
15204
diff
changeset
|
693 |
0dca88008a3a
(svn r19834) -Change: Replace matrix list widget in NewGRF gui by a panel with black background.
alberth <alberth@openttd.org>
parents:
15204
diff
changeset
|
694 uint step_height = this->GetWidget<NWidgetBase>(SNGRFS_FILE_LIST)->resize_y; |
0dca88008a3a
(svn r19834) -Change: Replace matrix list widget in NewGRF gui by a panel with black background.
alberth <alberth@openttd.org>
parents:
15204
diff
changeset
|
695 uint y = r.top + WD_FRAMERECT_TOP; |
15220
ef4601cbbb98
(svn r19849) -Fix: Center sprite and text seperately in the newgrf gui active list.
alberth <alberth@openttd.org>
parents:
15219
diff
changeset
|
696 int sprite_offset_y = (step_height - 10) / 2; |
ef4601cbbb98
(svn r19849) -Fix: Center sprite and text seperately in the newgrf gui active list.
alberth <alberth@openttd.org>
parents:
15219
diff
changeset
|
697 int offset_y = (step_height - FONT_HEIGHT_NORMAL) / 2; |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
698 |
16441
86fd9bcc9d2f
(svn r21157) -Codechange: remove information about the text direction out of the language "list"
rubidium <rubidium@openttd.org>
parents:
16395
diff
changeset
|
699 bool rtl = _current_text_dir == TD_RTL; |
13659
2c473236b6fd
(svn r18183) -Codechange: make the NewGRF window RTL aware
rubidium <rubidium@openttd.org>
parents:
13654
diff
changeset
|
700 uint text_left = rtl ? r.left + WD_FRAMERECT_LEFT : r.left + 25; |
2c473236b6fd
(svn r18183) -Codechange: make the NewGRF window RTL aware
rubidium <rubidium@openttd.org>
parents:
13654
diff
changeset
|
701 uint text_right = rtl ? r.right - 25 : r.right - WD_FRAMERECT_RIGHT; |
2c473236b6fd
(svn r18183) -Codechange: make the NewGRF window RTL aware
rubidium <rubidium@openttd.org>
parents:
13654
diff
changeset
|
702 uint square_left = rtl ? r.right - 15 : r.left + 5; |
2c473236b6fd
(svn r18183) -Codechange: make the NewGRF window RTL aware
rubidium <rubidium@openttd.org>
parents:
13654
diff
changeset
|
703 uint warning_left = rtl ? r.right - 30 : r.left + 20; |
2c473236b6fd
(svn r18183) -Codechange: make the NewGRF window RTL aware
rubidium <rubidium@openttd.org>
parents:
13654
diff
changeset
|
704 |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
705 int i = 0; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
706 for (const GRFConfig *c = this->actives; c != NULL; c = c->next, i++) { |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
707 if (this->vscroll->IsVisible(i)) { |
14711
74b0a8a64ff5
(svn r19295) -Codechange: introduce wrapper functions for GRFConfig::name/info
yexo <yexo@openttd.org>
parents:
14676
diff
changeset
|
708 const char *text = c->GetName(); |
15205
0dca88008a3a
(svn r19834) -Change: Replace matrix list widget in NewGRF gui by a panel with black background.
alberth <alberth@openttd.org>
parents:
15204
diff
changeset
|
709 bool h = (this->active_sel == c); |
15207
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
710 PaletteID pal = this->GetPalette(c); |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
711 |
15205
0dca88008a3a
(svn r19834) -Change: Replace matrix list widget in NewGRF gui by a panel with black background.
alberth <alberth@openttd.org>
parents:
15204
diff
changeset
|
712 if (h) GfxFillRect(r.left + 1, y, r.right - 1, y + step_height - 1, 156); |
13696
619a107df4a1
(svn r18221) -Codechange: make the NewGRF window big font aware
rubidium <rubidium@openttd.org>
parents:
13695
diff
changeset
|
713 DrawSprite(SPR_SQUARE, pal, square_left, y + sprite_offset_y); |
619a107df4a1
(svn r18221) -Codechange: make the NewGRF window big font aware
rubidium <rubidium@openttd.org>
parents:
13695
diff
changeset
|
714 if (c->error != NULL) DrawSprite(SPR_WARNING_SIGN, 0, warning_left, y + sprite_offset_y); |
13659
2c473236b6fd
(svn r18183) -Codechange: make the NewGRF window RTL aware
rubidium <rubidium@openttd.org>
parents:
13654
diff
changeset
|
715 uint txtoffset = c->error == NULL ? 0 : 10; |
15220
ef4601cbbb98
(svn r19849) -Fix: Center sprite and text seperately in the newgrf gui active list.
alberth <alberth@openttd.org>
parents:
15219
diff
changeset
|
716 DrawString(text_left + (rtl ? 0 : txtoffset), text_right - (rtl ? txtoffset : 0), y + offset_y, text, h ? TC_WHITE : TC_ORANGE); |
15205
0dca88008a3a
(svn r19834) -Change: Replace matrix list widget in NewGRF gui by a panel with black background.
alberth <alberth@openttd.org>
parents:
15204
diff
changeset
|
717 y += step_height; |
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 } |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
719 } |
15618
e4640748f223
(svn r20281) -Codechange: unify case scope closure + break coding style
rubidium <rubidium@openttd.org>
parents:
15605
diff
changeset
|
720 break; |
e4640748f223
(svn r20281) -Codechange: unify case scope closure + break coding style
rubidium <rubidium@openttd.org>
parents:
15605
diff
changeset
|
721 } |
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 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
723 case SNGRFS_AVAIL_LIST: { |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
724 GfxFillRect(r.left + 1, r.top + 1, r.right - 1, r.bottom - 1, 0xD7); |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
725 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
726 uint step_height = this->GetWidget<NWidgetBase>(SNGRFS_AVAIL_LIST)->resize_y; |
15219
861c943801ad
(svn r19848) -Fix (r19837): Center the texts of the inactive newgrfs.
alberth <alberth@openttd.org>
parents:
15216
diff
changeset
|
727 int offset_y = (step_height - FONT_HEIGHT_NORMAL) / 2; |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
728 uint y = r.top + WD_FRAMERECT_TOP; |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
729 uint min_index = this->vscroll2->GetPosition(); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
730 uint max_index = min(min_index + this->vscroll2->GetCapacity(), this->avails.Length()); |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
731 |
15599
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
732 for (uint i = min_index; i < max_index; i++) { |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
733 const GRFConfig *c = this->avails[i]; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
734 bool h = (c == this->avail_sel); |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
735 const char *text = c->GetName(); |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
736 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
737 if (h) GfxFillRect(r.left + 1, y, r.right - 1, y + step_height - 1, 156); |
15219
861c943801ad
(svn r19848) -Fix (r19837): Center the texts of the inactive newgrfs.
alberth <alberth@openttd.org>
parents:
15216
diff
changeset
|
738 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y + offset_y, text, h ? TC_WHITE : TC_SILVER); |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
739 y += step_height; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
740 } |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
741 break; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
742 } |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
743 |
15204
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
744 case SNGRFS_NEWGRF_INFO_TITLE: |
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
745 /* Create the nice grayish rectangle at the details top. */ |
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
746 GfxFillRect(r.left + 1, r.top + 1, r.right - 1, r.bottom - 1, 157); |
15400
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15345
diff
changeset
|
747 DrawString(r.left, r.right, (r.top + r.bottom - FONT_HEIGHT_NORMAL) / 2, STR_NEWGRF_SETTINGS_INFO_TITLE, TC_FROMSTRING, SA_HOR_CENTER); |
15204
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
748 break; |
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
749 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
750 case SNGRFS_NEWGRF_INFO: { |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
751 const GRFConfig *selected = this->active_sel; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
752 if (selected == NULL) selected = this->avail_sel; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
753 if (selected != NULL) { |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
754 ShowNewGRFInfo(selected, r.left + WD_FRAMERECT_LEFT, r.top + WD_FRAMERECT_TOP, r.right - WD_FRAMERECT_RIGHT, r.bottom - WD_FRAMERECT_BOTTOM, this->show_params); |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
755 } |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
756 break; |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
757 } |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
758 } |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
759 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
760 |
14409
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14391
diff
changeset
|
761 virtual void OnClick(Point pt, int widget, int click_count) |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
762 { |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
763 switch (widget) { |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
764 case SNGRFS_PRESET_LIST: { |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
765 DropDownList *list = new DropDownList(); |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
766 |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
767 /* Add 'None' option for clearing list */ |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
768 list->push_back(new DropDownListStringItem(STR_NONE, -1, false)); |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
769 |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
770 for (uint i = 0; i < _grf_preset_list.Length(); i++) { |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
771 if (_grf_preset_list[i] != NULL) { |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
772 list->push_back(new DropDownListPresetItem(i)); |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
773 } |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
774 } |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
775 |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
776 this->DeleteChildWindows(WC_QUERY_STRING); // Remove the parameter query window |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
777 ShowDropDownList(this, list, this->preset, SNGRFS_PRESET_LIST); |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
778 break; |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
779 } |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
780 |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
781 case SNGRFS_PRESET_SAVE: |
12632
e41943276802
(svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents:
12619
diff
changeset
|
782 ShowQueryString(STR_EMPTY, STR_NEWGRF_SETTINGS_PRESET_SAVE_QUERY, 32, 100, this, CS_ALPHANUMERAL, QSF_NONE); |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
783 break; |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
784 |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
785 case SNGRFS_PRESET_DELETE: |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
786 if (this->preset == -1) return; |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
787 |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
788 DeleteGRFPresetFromConfig(_grf_preset_list[this->preset]); |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
789 GetGRFPresetList(&_grf_preset_list); |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
790 this->preset = -1; |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
791 this->InvalidateData(); |
13413
a3d40c489804
(svn r17922) -Fix [FS#3291]: crash when closing NewGRF parameter window with no NewGRF selected
rubidium <rubidium@openttd.org>
parents:
13411
diff
changeset
|
792 this->DeleteChildWindows(WC_QUERY_STRING); // Remove the parameter query window |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
793 break; |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
794 |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
795 case SNGRFS_MOVE_UP: { // Move GRF up |
15345
52c9ee163c8f
(svn r19986) -Fix (r19841): One could add and remove Grfs from the list via doubleclicking even if editing the list is not allowed.
frosch <frosch@openttd.org>
parents:
15331
diff
changeset
|
796 if (this->active_sel == NULL || !this->editable) 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
|
797 |
14390
48685f9d7f68
(svn r18947) -Fix [FS#1510]: after clicking move up/move down in the newgrf/ai the selected item could be out of range
yexo <yexo@openttd.org>
parents:
14319
diff
changeset
|
798 int pos = 0; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
799 for (GRFConfig **pc = &this->actives; *pc != NULL; pc = &(*pc)->next, pos++) { |
15200
0865df725761
(svn r19829) -Codechange: Extract assignment from the condition-check in the for statement.
alberth <alberth@openttd.org>
parents:
15194
diff
changeset
|
800 GRFConfig *c = *pc; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
801 if (c->next == this->active_sel) { |
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
802 c->next = this->active_sel->next; |
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
803 this->active_sel->next = c; |
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
804 *pc = this->active_sel; |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
805 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
|
806 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
807 } |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
808 this->vscroll->ScrollTowards(pos); |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
809 this->preset = -1; |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
810 this->InvalidateData(); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
811 break; |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
812 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
813 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
814 case SNGRFS_MOVE_DOWN: { // Move GRF down |
15345
52c9ee163c8f
(svn r19986) -Fix (r19841): One could add and remove Grfs from the list via doubleclicking even if editing the list is not allowed.
frosch <frosch@openttd.org>
parents:
15331
diff
changeset
|
815 if (this->active_sel == NULL || !this->editable) 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
|
816 |
14390
48685f9d7f68
(svn r18947) -Fix [FS#1510]: after clicking move up/move down in the newgrf/ai the selected item could be out of range
yexo <yexo@openttd.org>
parents:
14319
diff
changeset
|
817 int pos = 1; // Start at 1 as we swap the selected newgrf with the next one |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
818 for (GRFConfig **pc = &this->actives; *pc != NULL; pc = &(*pc)->next, pos++) { |
15200
0865df725761
(svn r19829) -Codechange: Extract assignment from the condition-check in the for statement.
alberth <alberth@openttd.org>
parents:
15194
diff
changeset
|
819 GRFConfig *c = *pc; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
820 if (c == this->active_sel) { |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
821 *pc = c->next; |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
822 c->next = c->next->next; |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
823 (*pc)->next = c; |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
824 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
|
825 } |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
826 } |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
827 this->vscroll->ScrollTowards(pos); |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
828 this->preset = -1; |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
829 this->InvalidateData(); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
830 break; |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
831 } |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
832 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
833 case SNGRFS_FILE_LIST: { // Select an active GRF. |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
834 uint i = this->vscroll->GetScrolledRowFromWidget(pt.y, this, SNGRFS_FILE_LIST); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
835 |
15201
071e920abcfb
(svn r19830) -Codechange: Move variable declarations to their first use.
alberth <alberth@openttd.org>
parents:
15200
diff
changeset
|
836 GRFConfig *c; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
837 for (c = this->actives; c != NULL && i > 0; c = c->next, i--) {} |
13413
a3d40c489804
(svn r17922) -Fix [FS#3291]: crash when closing NewGRF parameter window with no NewGRF selected
rubidium <rubidium@openttd.org>
parents:
13411
diff
changeset
|
838 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
839 if (this->active_sel != c) DeleteWindowByClass(WC_GRF_PARAMETERS); |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
840 this->active_sel = c; |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
841 this->avail_sel = NULL; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
842 this->avail_pos = -1; |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
843 |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
844 this->InvalidateData(); |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
845 if (click_count == 1) break; |
15626
33d3500b2a62
(svn r20289) -Codechange: Unify fall through coding style.
terkhen <terkhen@openttd.org>
parents:
15623
diff
changeset
|
846 /* FALL THROUGH, with double click. */ |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
847 } |
15626
33d3500b2a62
(svn r20289) -Codechange: Unify fall through coding style.
terkhen <terkhen@openttd.org>
parents:
15623
diff
changeset
|
848 |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
849 case SNGRFS_REMOVE: { // Remove GRF |
15345
52c9ee163c8f
(svn r19986) -Fix (r19841): One could add and remove Grfs from the list via doubleclicking even if editing the list is not allowed.
frosch <frosch@openttd.org>
parents:
15331
diff
changeset
|
850 if (this->active_sel == NULL || !this->editable) break; |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
851 DeleteWindowByClass(WC_GRF_PARAMETERS); |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
852 |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
853 /* Choose the next GRF file to be the selected file. */ |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
854 GRFConfig *newsel = this->active_sel->next; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
855 for (GRFConfig **pc = &this->actives; *pc != NULL; pc = &(*pc)->next) { |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
856 GRFConfig *c = *pc; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
857 /* If the new selection is empty (i.e. we're deleting the last item |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
858 * in the list, pick the file just before the selected file */ |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
859 if (newsel == NULL && c->next == this->active_sel) newsel = c; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
860 |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
861 if (c == this->active_sel) { |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
862 *pc = c->next; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
863 delete c; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
864 break; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
865 } |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
866 } |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
867 |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
868 this->active_sel = newsel; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
869 this->preset = -1; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
870 this->avail_pos = -1; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
871 this->avail_sel = NULL; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
872 this->avails.ForceRebuild(); |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
873 this->InvalidateData(2); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
874 break; |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
875 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
876 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
877 case SNGRFS_AVAIL_LIST: { // Select a non-active GRF. |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
878 uint i = this->vscroll2->GetScrolledRowFromWidget(pt.y, this, SNGRFS_AVAIL_LIST); |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
879 this->active_sel = NULL; |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
880 DeleteWindowByClass(WC_GRF_PARAMETERS); |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
881 if (i < this->avails.Length()) { |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
882 this->avail_sel = this->avails[i]; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
883 this->avail_pos = i; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
884 } |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
885 this->InvalidateData(); |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
886 if (click_count == 1) break; |
15626
33d3500b2a62
(svn r20289) -Codechange: Unify fall through coding style.
terkhen <terkhen@openttd.org>
parents:
15623
diff
changeset
|
887 /* FALL THROUGH, with double click. */ |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
888 } |
15626
33d3500b2a62
(svn r20289) -Codechange: Unify fall through coding style.
terkhen <terkhen@openttd.org>
parents:
15623
diff
changeset
|
889 |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
890 case SNGRFS_ADD: { |
15345
52c9ee163c8f
(svn r19986) -Fix (r19841): One could add and remove Grfs from the list via doubleclicking even if editing the list is not allowed.
frosch <frosch@openttd.org>
parents:
15331
diff
changeset
|
891 if (this->avail_sel == NULL || !this->editable) break; |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
892 |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
893 GRFConfig **list; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
894 /* Find last entry in the list, checking for duplicate grfid on the way */ |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
895 for (list = &this->actives; *list != NULL; list = &(*list)->next) { |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
896 if ((*list)->ident.grfid == this->avail_sel->ident.grfid) { |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
897 ShowErrorMessage(STR_NEWGRF_DUPLICATE_GRFID, INVALID_STRING_ID, WL_INFO); |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
898 return; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
899 } |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
900 } |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
901 |
15588
04eb4c42c0a0
(svn r20248) -Codechange: use a copy-constructor instead of a separate function co clone GRFConfig/GRFError
yexo <yexo@openttd.org>
parents:
15579
diff
changeset
|
902 GRFConfig *c = new GRFConfig(*this->avail_sel); // Copy GRF details from scanned list. |
15917
052cfee737ea
(svn r20601) -Feature: [NewGRF] Add 'DEFA' field to set parameter defaults with action 14
yexo <yexo@openttd.org>
parents:
15804
diff
changeset
|
903 c->SetParameterDefaults(); |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
904 *list = c; // Append GRF config to configuration list. |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
905 |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
906 /* Select next (or previous, if last one) item in the list. */ |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
907 int new_pos = this->avail_pos + 1; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
908 if (new_pos >= (int)this->avails.Length()) new_pos = this->avail_pos - 1; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
909 this->avail_pos = new_pos; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
910 if (new_pos >= 0) this->avail_sel = this->avails[new_pos]; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
911 |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
912 this->avails.ForceRebuild(); |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
913 this->InvalidateData(2); |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
914 break; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
915 } |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
916 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
917 case SNGRFS_APPLY_CHANGES: // Apply changes made to GRF list |
15345
52c9ee163c8f
(svn r19986) -Fix (r19841): One could add and remove Grfs from the list via doubleclicking even if editing the list is not allowed.
frosch <frosch@openttd.org>
parents:
15331
diff
changeset
|
918 if (!this->editable) break; |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
919 if (this->execute) { |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
920 ShowQuery( |
12632
e41943276802
(svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents:
12619
diff
changeset
|
921 STR_NEWGRF_POPUP_CAUTION_CAPTION, |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
922 STR_NEWGRF_CONFIRMATION_TEXT, |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
923 this, |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
924 NewGRFConfirmationCallback |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
925 ); |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
926 } else { |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
927 CopyGRFConfigList(this->orig_list, this->actives, true); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
928 ResetGRFConfig(false); |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
929 ReloadNewGRFData(); |
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 } |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
931 this->DeleteChildWindows(WC_QUERY_STRING); // Remove the parameter query window |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
932 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
|
933 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
934 case SNGRFS_SET_PARAMETERS: { // Edit parameters |
15345
52c9ee163c8f
(svn r19986) -Fix (r19841): One could add and remove Grfs from the list via doubleclicking even if editing the list is not allowed.
frosch <frosch@openttd.org>
parents:
15331
diff
changeset
|
935 if (this->active_sel == NULL || !this->editable || !this->show_params) 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
|
936 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
937 OpenGRFParameterWindow(this->active_sel); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
938 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
|
939 } |
10066
42653fe231a2
(svn r14233) -Feature/Fix [FS#2172]: save the palette of the loaded NewGRFs in the savegame, so joining with a server using Windows palette will make a client with the DOS palette do palette conversion and (thus) not cause a desync due to the different palettes disabling different NewGRFs.
rubidium <rubidium@openttd.org>
parents:
9957
diff
changeset
|
940 |
10793
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
941 case SNGRFS_TOGGLE_PALETTE: |
15345
52c9ee163c8f
(svn r19986) -Fix (r19841): One could add and remove Grfs from the list via doubleclicking even if editing the list is not allowed.
frosch <frosch@openttd.org>
parents:
15331
diff
changeset
|
942 if (this->active_sel != NULL || !this->editable) { |
15593
7d5548deab3f
(svn r20253) -Codechange: change GRFConfig::windows_paletted into a bitmask/bitset
rubidium <rubidium@openttd.org>
parents:
15588
diff
changeset
|
943 this->active_sel->palette ^= GRFP_USE_MASK; |
10066
42653fe231a2
(svn r14233) -Feature/Fix [FS#2172]: save the palette of the loaded NewGRFs in the savegame, so joining with a server using Windows palette will make a client with the DOS palette do palette conversion and (thus) not cause a desync due to the different palettes disabling different NewGRFs.
rubidium <rubidium@openttd.org>
parents:
9957
diff
changeset
|
944 this->SetDirty(); |
42653fe231a2
(svn r14233) -Feature/Fix [FS#2172]: save the palette of the loaded NewGRFs in the savegame, so joining with a server using Windows palette will make a client with the DOS palette do palette conversion and (thus) not cause a desync due to the different palettes disabling different NewGRFs.
rubidium <rubidium@openttd.org>
parents:
9957
diff
changeset
|
945 } |
42653fe231a2
(svn r14233) -Feature/Fix [FS#2172]: save the palette of the loaded NewGRFs in the savegame, so joining with a server using Windows palette will make a client with the DOS palette do palette conversion and (thus) not cause a desync due to the different palettes disabling different NewGRFs.
rubidium <rubidium@openttd.org>
parents:
9957
diff
changeset
|
946 break; |
10793
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
947 |
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
948 case SNGRFS_CONTENT_DOWNLOAD: |
16394
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
949 case SNGRFS_CONTENT_DOWNLOAD2: |
10793
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
950 if (!_network_available) { |
14645
b7a22979b84e
(svn r19224) -Codechange: change parameters passed to ShowErrorMessage() a bit
smatz <smatz@openttd.org>
parents:
14561
diff
changeset
|
951 ShowErrorMessage(STR_NETWORK_ERROR_NOTAVAILABLE, INVALID_STRING_ID, WL_ERROR); |
10793
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
952 } else { |
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
953 #if defined(ENABLE_NETWORK) |
15331
fcc18215652e
(svn r19972) -Change: Use the md5sum from the previous save of the game for BaNaNaS instead of the initial (when the grf was added) md5sum from the gamelog. Neither method is 'better', but this way it is independent from the gamelog.
frosch <frosch@openttd.org>
parents:
15220
diff
changeset
|
954 this->DeleteChildWindows(WC_QUERY_STRING); // Remove the parameter query window |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
955 |
15331
fcc18215652e
(svn r19972) -Change: Use the md5sum from the previous save of the game for BaNaNaS instead of the initial (when the grf was added) md5sum from the gamelog. Neither method is 'better', but this way it is independent from the gamelog.
frosch <frosch@openttd.org>
parents:
15220
diff
changeset
|
956 /* Only show the things in the current list, or everything when nothing's selected */ |
10793
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
957 ContentVector cv; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
958 for (const GRFConfig *c = this->actives; c != NULL; c = c->next) { |
10886
b22fa54bad95
(svn r15221) -Change [FS#2574]: only show missing NewGRFs when opening the content download window from a NewGRF list and there are missing NewGRFs, otherwise show just all NewGRFs the system knows.
rubidium <rubidium@openttd.org>
parents:
10808
diff
changeset
|
959 if (c->status != GCS_NOT_FOUND && !HasBit(c->flags, GCF_COMPATIBLE)) continue; |
b22fa54bad95
(svn r15221) -Change [FS#2574]: only show missing NewGRFs when opening the content download window from a NewGRF list and there are missing NewGRFs, otherwise show just all NewGRFs the system knows.
rubidium <rubidium@openttd.org>
parents:
10808
diff
changeset
|
960 |
10793
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
961 ContentInfo *ci = new ContentInfo(); |
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
962 ci->type = CONTENT_TYPE_NEWGRF; |
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
963 ci->state = ContentInfo::DOES_NOT_EXIST; |
14711
74b0a8a64ff5
(svn r19295) -Codechange: introduce wrapper functions for GRFConfig::name/info
yexo <yexo@openttd.org>
parents:
14676
diff
changeset
|
964 ttd_strlcpy(ci->name, c->GetName(), lengthof(ci->name)); |
14676
353df593bee0
(svn r19255) -Codechange: encapsulate GRFIdentifier in GRFConfig instead of subclassing it
yexo <yexo@openttd.org>
parents:
14645
diff
changeset
|
965 ci->unique_id = BSWAP32(c->ident.grfid); |
15331
fcc18215652e
(svn r19972) -Change: Use the md5sum from the previous save of the game for BaNaNaS instead of the initial (when the grf was added) md5sum from the gamelog. Neither method is 'better', but this way it is independent from the gamelog.
frosch <frosch@openttd.org>
parents:
15220
diff
changeset
|
966 memcpy(ci->md5sum, HasBit(c->flags, GCF_COMPATIBLE) ? c->original_md5sum : c->ident.md5sum, sizeof(ci->md5sum)); |
10793
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
967 *cv.Append() = ci; |
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
968 } |
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
969 ShowNetworkContentListWindow(cv.Length() == 0 ? NULL : &cv, CONTENT_TYPE_NEWGRF); |
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
970 #endif |
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
971 } |
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
972 break; |
15211
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
973 |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
974 case SNGRFS_RESCAN_FILES: |
16394
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
975 case SNGRFS_RESCAN_FILES2: |
16522
fa50c5fffd18
(svn r21248) -Codechange: don't run the tar scanner twice upon startup
rubidium <rubidium@openttd.org>
parents:
16441
diff
changeset
|
976 TarScanner::DoScan(); |
15211
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
977 ScanNewGRFFiles(); |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
978 this->avail_sel = NULL; |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
979 this->avail_pos = -1; |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
980 this->avails.ForceRebuild(); |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
981 this->InvalidateData(1); |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
982 this->DeleteChildWindows(WC_QUERY_STRING); // Remove the parameter query window |
15557
14828f61eda6
(svn r20217) -Fix [FS#3969]: Invalidate saveload GUI after rescanning NewGRFs.
frosch <frosch@openttd.org>
parents:
15423
diff
changeset
|
983 InvalidateWindowClassesData(WC_SAVELOAD); |
15211
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
984 break; |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
985 } |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
986 } |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
987 |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
988 virtual void OnDropdownSelect(int widget, int index) |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
989 { |
15345
52c9ee163c8f
(svn r19986) -Fix (r19841): One could add and remove Grfs from the list via doubleclicking even if editing the list is not allowed.
frosch <frosch@openttd.org>
parents:
15331
diff
changeset
|
990 if (!this->editable) return; |
16006
25371ea61636
(svn r20694) -Fix [FS#4087]: empty newgrf presets were not selectable
yexo <yexo@openttd.org>
parents:
15982
diff
changeset
|
991 |
25371ea61636
(svn r20694) -Fix [FS#4087]: empty newgrf presets were not selectable
yexo <yexo@openttd.org>
parents:
15982
diff
changeset
|
992 ClearGRFConfigList(&this->actives); |
25371ea61636
(svn r20694) -Fix [FS#4087]: empty newgrf presets were not selectable
yexo <yexo@openttd.org>
parents:
15982
diff
changeset
|
993 this->preset = index; |
25371ea61636
(svn r20694) -Fix [FS#4087]: empty newgrf presets were not selectable
yexo <yexo@openttd.org>
parents:
15982
diff
changeset
|
994 |
25371ea61636
(svn r20694) -Fix [FS#4087]: empty newgrf presets were not selectable
yexo <yexo@openttd.org>
parents:
15982
diff
changeset
|
995 if (index != -1) { |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
996 GRFConfig *c = LoadGRFPresetFromConfig(_grf_preset_list[index]); |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
997 |
16006
25371ea61636
(svn r20694) -Fix [FS#4087]: empty newgrf presets were not selectable
yexo <yexo@openttd.org>
parents:
15982
diff
changeset
|
998 this->active_sel = NULL; |
25371ea61636
(svn r20694) -Fix [FS#4087]: empty newgrf presets were not selectable
yexo <yexo@openttd.org>
parents:
15982
diff
changeset
|
999 this->actives = c; |
25371ea61636
(svn r20694) -Fix [FS#4087]: empty newgrf presets were not selectable
yexo <yexo@openttd.org>
parents:
15982
diff
changeset
|
1000 this->avails.ForceRebuild(); |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
1001 } |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
1002 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
1003 DeleteWindowByClass(WC_GRF_PARAMETERS); |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1004 this->active_sel = NULL; |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1005 this->InvalidateData(3); |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
1006 } |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
1007 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1008 virtual void OnQueryTextFinished(char *str) |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1009 { |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1010 if (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
|
1011 |
15603
ea0089ca72ef
(svn r20264) -Fix (r20258): saving a new preset was broken
yexo <yexo@openttd.org>
parents:
15602
diff
changeset
|
1012 SaveGRFPresetToConfig(str, this->actives); |
ea0089ca72ef
(svn r20264) -Fix (r20258): saving a new preset was broken
yexo <yexo@openttd.org>
parents:
15602
diff
changeset
|
1013 GetGRFPresetList(&_grf_preset_list); |
ea0089ca72ef
(svn r20264) -Fix (r20258): saving a new preset was broken
yexo <yexo@openttd.org>
parents:
15602
diff
changeset
|
1014 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
1015 /* Switch to this preset */ |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
1016 for (uint i = 0; i < _grf_preset_list.Length(); i++) { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
1017 if (_grf_preset_list[i] != NULL && strcmp(_grf_preset_list[i], str) == 0) { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
1018 this->preset = i; |
9677
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
1019 break; |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
1020 } |
44a8397a07d4
(svn r13781) -Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file.
peter1138 <peter1138@openttd.org>
parents:
9648
diff
changeset
|
1021 } |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1022 |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1023 this->InvalidateData(); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1024 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1025 |
15620
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
1026 /** |
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
1027 * Calback to update internal data. |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1028 * - 0: (optionally) build availables, update button status. |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1029 * - 1: build availables, Add newly found grfs, update button status. |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1030 * - 2: (optionally) build availables, Reset preset, + 3 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1031 * - 3: (optionally) build availables, Update active scrollbar, update button status. |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1032 * - 4: Force a rebuild of the availables, + 2 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1033 */ |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1034 virtual void OnInvalidateData(int data = 0) |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1035 { |
10793
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
1036 switch (data) { |
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
1037 default: NOT_REACHED(); |
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
1038 case 0: |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1039 /* Nothing important to do */ |
10793
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
1040 break; |
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
1041 |
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
1042 case 1: |
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
1043 /* Search the list for items that are now found and mark them as such. */ |
15423
fa1322ffb258
(svn r20066) -Fix: When rescanning NewGRFs resp. after content download also check whether compatible grfs are available now.
frosch <frosch@openttd.org>
parents:
15400
diff
changeset
|
1044 for (GRFConfig **l = &this->actives; *l != NULL; l = &(*l)->next) { |
fa1322ffb258
(svn r20066) -Fix: When rescanning NewGRFs resp. after content download also check whether compatible grfs are available now.
frosch <frosch@openttd.org>
parents:
15400
diff
changeset
|
1045 GRFConfig *c = *l; |
fa1322ffb258
(svn r20066) -Fix: When rescanning NewGRFs resp. after content download also check whether compatible grfs are available now.
frosch <frosch@openttd.org>
parents:
15400
diff
changeset
|
1046 bool compatible = HasBit(c->flags, GCF_COMPATIBLE); |
fa1322ffb258
(svn r20066) -Fix: When rescanning NewGRFs resp. after content download also check whether compatible grfs are available now.
frosch <frosch@openttd.org>
parents:
15400
diff
changeset
|
1047 if (c->status != GCS_NOT_FOUND && !compatible) continue; |
10793
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
1048 |
16256
49226e68e209
(svn r20957) -Codechange: Add another parameter to FindGRFConfig() to define search restrictions.
frosch <frosch@openttd.org>
parents:
16250
diff
changeset
|
1049 const GRFConfig *f = FindGRFConfig(c->ident.grfid, FGCM_EXACT, compatible ? c->original_md5sum : c->ident.md5sum); |
10793
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
1050 if (f == NULL) continue; |
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
1051 |
15588
04eb4c42c0a0
(svn r20248) -Codechange: use a copy-constructor instead of a separate function co clone GRFConfig/GRFError
yexo <yexo@openttd.org>
parents:
15579
diff
changeset
|
1052 *l = new GRFConfig(*f); |
15423
fa1322ffb258
(svn r20066) -Fix: When rescanning NewGRFs resp. after content download also check whether compatible grfs are available now.
frosch <frosch@openttd.org>
parents:
15400
diff
changeset
|
1053 (*l)->next = c->next; |
10793
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
1054 |
15423
fa1322ffb258
(svn r20066) -Fix: When rescanning NewGRFs resp. after content download also check whether compatible grfs are available now.
frosch <frosch@openttd.org>
parents:
15400
diff
changeset
|
1055 if (active_sel == c) active_sel = *l; |
fa1322ffb258
(svn r20066) -Fix: When rescanning NewGRFs resp. after content download also check whether compatible grfs are available now.
frosch <frosch@openttd.org>
parents:
15400
diff
changeset
|
1056 |
fa1322ffb258
(svn r20066) -Fix: When rescanning NewGRFs resp. after content download also check whether compatible grfs are available now.
frosch <frosch@openttd.org>
parents:
15400
diff
changeset
|
1057 delete c; |
10793
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
1058 } |
15579
5f128be91f59
(svn r20239) -Doc: Give a common name to all fall throughs (FALL THROUGH).
terkhen <terkhen@openttd.org>
parents:
15563
diff
changeset
|
1059 /* FALL THROUGH */ |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1060 case 4: |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1061 this->avails.ForceRebuild(); |
15579
5f128be91f59
(svn r20239) -Doc: Give a common name to all fall throughs (FALL THROUGH).
terkhen <terkhen@openttd.org>
parents:
15563
diff
changeset
|
1062 /* FALL THROUGH */ |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1063 case 2: |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1064 this->preset = -1; |
15579
5f128be91f59
(svn r20239) -Doc: Give a common name to all fall throughs (FALL THROUGH).
terkhen <terkhen@openttd.org>
parents:
15563
diff
changeset
|
1065 /* FALL THROUGH */ |
15201
071e920abcfb
(svn r19830) -Codechange: Move variable declarations to their first use.
alberth <alberth@openttd.org>
parents:
15200
diff
changeset
|
1066 case 3: { |
071e920abcfb
(svn r19830) -Codechange: Move variable declarations to their first use.
alberth <alberth@openttd.org>
parents:
15200
diff
changeset
|
1067 int i = 0; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1068 for (const GRFConfig *c = this->actives; c != NULL; c = c->next, i++) {} |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1069 |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1070 this->vscroll->SetCapacityFromWidget(this, SNGRFS_FILE_LIST); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1071 this->vscroll->SetCount(i); |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1072 |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1073 this->vscroll2->SetCapacityFromWidget(this, SNGRFS_AVAIL_LIST); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1074 if (this->avail_pos >= 0) this->vscroll2->ScrollTowards(this->avail_pos); |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1075 break; |
15201
071e920abcfb
(svn r19830) -Codechange: Move variable declarations to their first use.
alberth <alberth@openttd.org>
parents:
15200
diff
changeset
|
1076 } |
10793
0744d383a56b
(svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
1077 } |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1078 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1079 this->BuildAvailables(); |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1080 |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1081 this->SetWidgetsDisabledState(!this->editable, |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1082 SNGRFS_PRESET_LIST, |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1083 SNGRFS_APPLY_CHANGES, |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1084 SNGRFS_TOGGLE_PALETTE, |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1085 WIDGET_LIST_END |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1086 ); |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
1087 this->SetWidgetDisabledState(SNGRFS_ADD, !this->editable || this->avail_sel == NULL); |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1088 |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1089 bool disable_all = this->active_sel == NULL || !this->editable; |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1090 this->SetWidgetsDisabledState(disable_all, |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1091 SNGRFS_REMOVE, |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1092 SNGRFS_MOVE_UP, |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1093 SNGRFS_MOVE_DOWN, |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1094 WIDGET_LIST_END |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1095 ); |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1096 this->SetWidgetDisabledState(SNGRFS_SET_PARAMETERS, !this->show_params || disable_all); |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1097 this->SetWidgetDisabledState(SNGRFS_TOGGLE_PALETTE, disable_all); |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1098 |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1099 if (!disable_all) { |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1100 /* All widgets are now enabled, so disable widgets we can't use */ |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1101 if (this->active_sel == this->actives) this->DisableWidget(SNGRFS_MOVE_UP); |
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1102 if (this->active_sel->next == NULL) this->DisableWidget(SNGRFS_MOVE_DOWN); |
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1103 if (this->active_sel->IsOpenTTDBaseGRF()) this->DisableWidget(SNGRFS_REMOVE); |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1104 } |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1105 |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1106 this->SetWidgetDisabledState(SNGRFS_PRESET_DELETE, this->preset == -1); |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1107 |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1108 bool has_missing = false; |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1109 bool has_compatible = false; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1110 for (const GRFConfig *c = this->actives; !has_missing && c != NULL; c = c->next) { |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1111 has_missing |= c->status == GCS_NOT_FOUND; |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1112 has_compatible |= HasBit(c->flags, GCF_COMPATIBLE); |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1113 } |
16394
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1114 uint16 widget_data; |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1115 StringID tool_tip; |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1116 if (has_missing || has_compatible) { |
16394
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1117 widget_data = STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_BUTTON; |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1118 tool_tip = STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_TOOLTIP; |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1119 } else { |
16394
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1120 widget_data = STR_INTRO_ONLINE_CONTENT; |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1121 tool_tip = STR_INTRO_TOOLTIP_ONLINE_CONTENT; |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1122 } |
16394
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1123 this->GetWidget<NWidgetCore>(SNGRFS_CONTENT_DOWNLOAD)->widget_data = widget_data; |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1124 this->GetWidget<NWidgetCore>(SNGRFS_CONTENT_DOWNLOAD)->tool_tip = tool_tip; |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1125 this->GetWidget<NWidgetCore>(SNGRFS_CONTENT_DOWNLOAD2)->widget_data = widget_data; |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1126 this->GetWidget<NWidgetCore>(SNGRFS_CONTENT_DOWNLOAD2)->tool_tip = tool_tip; |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1127 |
13170
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1128 this->SetWidgetDisabledState(SNGRFS_PRESET_SAVE, has_missing); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1129 } |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1130 |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1131 virtual void OnMouseLoop() |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1132 { |
16393
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1133 if (this->editable) this->HandleEditBox(SNGRFS_FILTER); |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1134 } |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1135 |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1136 virtual EventState OnKeyPress(uint16 key, uint16 keycode) |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1137 { |
16393
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1138 if (!this->editable) return ES_NOT_HANDLED; |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1139 |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1140 switch (keycode) { |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1141 case WKC_UP: |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1142 /* scroll up by one */ |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1143 if (this->avail_pos > 0) this->avail_pos--; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1144 break; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1145 |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1146 case WKC_DOWN: |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1147 /* scroll down by one */ |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1148 if (this->avail_pos < (int)this->avails.Length() - 1) this->avail_pos++; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1149 break; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1150 |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1151 case WKC_PAGEUP: |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1152 /* scroll up a page */ |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1153 this->avail_pos = (this->avail_pos < this->vscroll2->GetCapacity()) ? 0 : this->avail_pos - this->vscroll2->GetCapacity(); |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1154 break; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1155 |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1156 case WKC_PAGEDOWN: |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1157 /* scroll down a page */ |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1158 this->avail_pos = min(this->avail_pos + this->vscroll2->GetCapacity(), (int)this->avails.Length() - 1); |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1159 break; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1160 |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1161 case WKC_HOME: |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1162 /* jump to beginning */ |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1163 this->avail_pos = 0; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1164 break; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1165 |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1166 case WKC_END: |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1167 /* jump to end */ |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1168 this->avail_pos = this->avails.Length() - 1; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1169 break; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1170 |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1171 default: { |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1172 /* Handle editbox input */ |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1173 EventState state = ES_NOT_HANDLED; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1174 if (this->HandleEditBoxKey(SNGRFS_FILTER, key, keycode, state) == HEBR_EDITING) { |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1175 this->OnOSKInput(SNGRFS_FILTER); |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1176 } |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1177 return state; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1178 } |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1179 } |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1180 |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1181 if (this->avails.Length() == 0) this->avail_pos = -1; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1182 if (this->avail_pos >= 0) { |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1183 this->avail_sel = this->avails[this->avail_pos]; |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1184 this->vscroll2->ScrollTowards(this->avail_pos); |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1185 this->InvalidateData(0); |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1186 } |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1187 |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1188 return ES_HANDLED; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1189 } |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1190 |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1191 virtual void OnOSKInput(int wid) |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1192 { |
16393
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1193 if (!this->editable) return; |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1194 |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1195 this->avails.SetFilterState(!StrEmpty(this->edit_str_buf)); |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1196 this->avails.ForceRebuild(); |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1197 this->InvalidateData(0); |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1198 } |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1199 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1200 private: |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1201 /** Sort grfs by name. */ |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1202 static int CDECL NameSorter(const GRFConfig * const *a, const GRFConfig * const *b) |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1203 { |
15599
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1204 int i = strcasecmp((*a)->GetName(), (*b)->GetName()); |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1205 if (i != 0) return i; |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1206 |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1207 i = (*a)->version - (*b)->version; |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1208 if (i != 0) return i; |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1209 |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1210 return memcmp((*a)->ident.md5sum, (*b)->ident.md5sum, lengthof((*b)->ident.md5sum)); |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1211 } |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1212 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1213 /** Filter grfs by tags/name */ |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1214 static bool CDECL TagNameFilter(const GRFConfig * const *a, const char *filter_string) |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1215 { |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1216 if (strcasestr((*a)->GetName(), filter_string) != NULL) return true; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1217 if ((*a)->filename != NULL && strcasestr((*a)->filename, filter_string) != NULL) return true; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1218 if ((*a)->GetDescription() != NULL && strcasestr((*a)->GetDescription(), filter_string) != NULL) return true; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1219 return false; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1220 } |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1221 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1222 void BuildAvailables() |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1223 { |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1224 if (!this->avails.NeedRebuild()) return; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1225 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1226 this->avails.Clear(); |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1227 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1228 for (const GRFConfig *c = _all_grfs; c != NULL; c = c->next) { |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1229 bool found = false; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1230 for (const GRFConfig *grf = this->actives; grf != NULL && !found; grf = grf->next) found = grf->ident.HasGrfIdentifier(c->ident.grfid, c->ident.md5sum); |
15599
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1231 if (found) continue; |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1232 |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1233 if (_settings_client.gui.newgrf_show_old_versions) { |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1234 *this->avails.Append() = c; |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1235 } else { |
16256
49226e68e209
(svn r20957) -Codechange: Add another parameter to FindGRFConfig() to define search restrictions.
frosch <frosch@openttd.org>
parents:
16250
diff
changeset
|
1236 const GRFConfig *best = FindGRFConfig(c->ident.grfid, FGCM_NEWEST); |
15599
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1237 /* |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1238 * If the best version is 0, then all NewGRF with this GRF ID |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1239 * have version 0, so for backward compatability reasons we |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1240 * want to show them all. |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1241 * If we are the best version, then we definitely want to |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1242 * show that NewGRF!. |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1243 */ |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1244 if (best->version == 0 || best->ident.HasGrfIdentifier(c->ident.grfid, c->ident.md5sum)) { |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1245 *this->avails.Append() = c; |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1246 } |
146255899304
(svn r20259) -Add: allow NewGRFs to specify their version and use that to hide old NewGRFs / to choose the newest when loading compatible NewGRFs
rubidium <rubidium@openttd.org>
parents:
15598
diff
changeset
|
1247 } |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1248 } |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1249 |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1250 this->avails.Filter(this->edit_str_buf); |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1251 this->avails.Compact(); |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1252 this->avails.RebuildDone(); |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1253 this->avails.Sort(); |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1254 |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
1255 if (this->avail_sel != NULL) { |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
1256 this->avail_pos = this->avails.FindIndex(this->avail_sel); |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
1257 if (this->avail_pos < 0) this->avail_sel = NULL; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
1258 } |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
1259 |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1260 this->vscroll2->SetCount(this->avails.Length()); // Update the scrollbar |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1261 } |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1262 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1263 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1264 Listing NewGRFWindow::last_sorting = {false, 0}; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1265 Filtering NewGRFWindow::last_filtering = {false, 0}; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1266 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1267 NewGRFWindow::GUIGRFConfigList::SortFunction * const NewGRFWindow::sorter_funcs[] = { |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1268 &NameSorter, |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1269 }; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1270 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1271 NewGRFWindow::GUIGRFConfigList::FilterFunction * const NewGRFWindow::filter_funcs[] = { |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1272 &TagNameFilter, |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1273 }; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1274 |
15620
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
1275 /** |
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
1276 * Custom nested widget container for the NewGRF gui. |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1277 * Depending on the space in the gui, it uses either |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1278 * - two column mode, put the #acs and the #avs underneath each other and the #info next to it, or |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1279 * - three column mode, put the #avs, #acs, and #info each in its own column. |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1280 */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1281 class NWidgetNewGRFDisplay : public NWidgetContainer { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1282 public: |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1283 static const uint INTER_LIST_SPACING; ///< Empty vertical space between both lists in the 2 column mode. |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1284 static const uint INTER_COLUMN_SPACING; ///< Empty horizontal space between two columns. |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1285 static const uint MAX_EXTRA_INFO_WIDTH; ///< Maximal additional width given to the panel. |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1286 static const uint MIN_EXTRA_FOR_3_COLUMNS; ///< Minimal additional width needed before switching to 3 columns. |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1287 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1288 NWidgetBase *avs; ///< Widget with the available grfs list and buttons. |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1289 NWidgetBase *acs; ///< Widget with the active grfs list and buttons. |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1290 NWidgetBase *inf; ///< Info panel. |
16392
67f16153e351
(svn r21108) -Add: Copy the 'editable' flag of the newgrf window to its layout widget.
alberth <alberth@openttd.org>
parents:
16286
diff
changeset
|
1291 bool editable; ///< Editable status of the parent NewGRF window (if \c false, drop all widgets that make the window editable). |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1292 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1293 NWidgetNewGRFDisplay(NWidgetBase *avs, NWidgetBase *acs, NWidgetBase *inf) : NWidgetContainer(NWID_HORIZONTAL) |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1294 { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1295 this->avs = avs; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1296 this->acs = acs; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1297 this->inf = inf; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1298 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1299 this->Add(this->avs); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1300 this->Add(this->acs); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1301 this->Add(this->inf); |
16392
67f16153e351
(svn r21108) -Add: Copy the 'editable' flag of the newgrf window to its layout widget.
alberth <alberth@openttd.org>
parents:
16286
diff
changeset
|
1302 |
67f16153e351
(svn r21108) -Add: Copy the 'editable' flag of the newgrf window to its layout widget.
alberth <alberth@openttd.org>
parents:
16286
diff
changeset
|
1303 this->editable = true; // Temporary setting, 'real' value is set in SetupSmallestSize(). |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1304 } |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1305 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1306 virtual void SetupSmallestSize(Window *w, bool init_array) |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1307 { |
16392
67f16153e351
(svn r21108) -Add: Copy the 'editable' flag of the newgrf window to its layout widget.
alberth <alberth@openttd.org>
parents:
16286
diff
changeset
|
1308 /* Copy state flag from the window. */ |
67f16153e351
(svn r21108) -Add: Copy the 'editable' flag of the newgrf window to its layout widget.
alberth <alberth@openttd.org>
parents:
16286
diff
changeset
|
1309 assert(dynamic_cast<NewGRFWindow *>(w) != NULL); |
67f16153e351
(svn r21108) -Add: Copy the 'editable' flag of the newgrf window to its layout widget.
alberth <alberth@openttd.org>
parents:
16286
diff
changeset
|
1310 NewGRFWindow *ngw = (NewGRFWindow *)w; |
67f16153e351
(svn r21108) -Add: Copy the 'editable' flag of the newgrf window to its layout widget.
alberth <alberth@openttd.org>
parents:
16286
diff
changeset
|
1311 this->editable = ngw->editable; |
67f16153e351
(svn r21108) -Add: Copy the 'editable' flag of the newgrf window to its layout widget.
alberth <alberth@openttd.org>
parents:
16286
diff
changeset
|
1312 |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1313 this->avs->SetupSmallestSize(w, init_array); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1314 this->acs->SetupSmallestSize(w, init_array); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1315 this->inf->SetupSmallestSize(w, init_array); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1316 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1317 uint min_avs_width = this->avs->smallest_x + this->avs->padding_left + this->avs->padding_right; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1318 uint min_acs_width = this->acs->smallest_x + this->acs->padding_left + this->acs->padding_right; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1319 uint min_inf_width = this->inf->smallest_x + this->inf->padding_left + this->inf->padding_right; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1320 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1321 uint min_avs_height = this->avs->smallest_y + this->avs->padding_top + this->avs->padding_bottom; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1322 uint min_acs_height = this->acs->smallest_y + this->acs->padding_top + this->acs->padding_bottom; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1323 uint min_inf_height = this->inf->smallest_y + this->inf->padding_top + this->inf->padding_bottom; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1324 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1325 /* Smallest window is in two column mode. */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1326 this->smallest_x = max(min_avs_width, min_acs_width) + INTER_COLUMN_SPACING + min_inf_width; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1327 this->smallest_y = max(min_inf_height, min_acs_height + INTER_LIST_SPACING + min_avs_height); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1328 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1329 /* Filling. */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1330 this->fill_x = LeastCommonMultiple(this->avs->fill_x, this->acs->fill_x); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1331 if (this->inf->fill_x > 0 && (this->fill_x == 0 || this->fill_x > this->inf->fill_x)) this->fill_x = this->inf->fill_x; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1332 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1333 this->fill_y = this->avs->fill_y; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1334 if (this->acs->fill_y > 0 && (this->fill_y == 0 || this->fill_y > this->acs->fill_y)) this->fill_y = this->acs->fill_y; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1335 this->fill_y = LeastCommonMultiple(this->fill_y, this->inf->fill_y); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1336 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1337 /* Resizing. */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1338 this->resize_x = LeastCommonMultiple(this->avs->resize_x, this->acs->resize_x); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1339 if (this->inf->resize_x > 0 && (this->resize_x == 0 || this->resize_x > this->inf->resize_x)) this->resize_x = this->inf->resize_x; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1340 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1341 this->resize_y = this->avs->resize_y; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1342 if (this->acs->resize_y > 0 && (this->resize_y == 0 || this->resize_y > this->acs->resize_y)) this->resize_y = this->acs->resize_y; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1343 this->resize_y = LeastCommonMultiple(this->resize_y, this->inf->resize_y); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1344 } |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1345 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1346 virtual void AssignSizePosition(SizingType sizing, uint x, uint y, uint given_width, uint given_height, bool rtl) |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1347 { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1348 this->StoreSizePosition(sizing, x, y, given_width, given_height); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1349 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1350 uint min_avs_width = this->avs->smallest_x + this->avs->padding_left + this->avs->padding_right; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1351 uint min_acs_width = this->acs->smallest_x + this->acs->padding_left + this->acs->padding_right; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1352 uint min_inf_width = this->inf->smallest_x + this->inf->padding_left + this->inf->padding_right; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1353 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1354 uint min_list_width = max(min_avs_width, min_acs_width); // Smallest width of the lists such that they have equal width (incl padding). |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1355 uint avs_extra_width = min_list_width - min_avs_width; // Additional width needed for avs to reach min_list_width. |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1356 uint acs_extra_width = min_list_width - min_acs_width; // Additional width needed for acs to reach min_list_width. |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1357 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1358 /* Use 2 or 3 colmuns? */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1359 uint min_three_columns = min_avs_width + min_acs_width + min_inf_width + 2 * INTER_COLUMN_SPACING; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1360 uint min_two_columns = min_list_width + min_inf_width + INTER_COLUMN_SPACING; |
16393
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1361 bool use_three_columns = this->editable && (min_three_columns + MIN_EXTRA_FOR_3_COLUMNS <= given_width); |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1362 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1363 /* Info panel is a seperate column in both modes. Compute its width first. */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1364 uint extra_width, inf_width; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1365 if (use_three_columns) { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1366 extra_width = given_width - min_three_columns; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1367 inf_width = min(MAX_EXTRA_INFO_WIDTH, extra_width / 2); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1368 } else { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1369 extra_width = given_width - min_two_columns; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1370 inf_width = min(MAX_EXTRA_INFO_WIDTH, extra_width / 2); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1371 } |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1372 inf_width = ComputeMaxSize(this->inf->smallest_x, this->inf->smallest_x + inf_width, this->inf->GetHorizontalStepSize(sizing)); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1373 extra_width -= inf_width - this->inf->smallest_x; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1374 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1375 uint inf_height = ComputeMaxSize(this->inf->smallest_y, given_height, this->inf->GetVerticalStepSize(sizing)); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1376 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1377 if (use_three_columns) { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1378 /* Three column display, first make both lists equally wide, then divide whatever is left between both lists. |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1379 * Only keep track of what avs gets, all other space goes to acs. */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1380 uint avs_width = min(avs_extra_width, extra_width); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1381 extra_width -= avs_width; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1382 extra_width -= min(acs_extra_width, extra_width); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1383 avs_width += extra_width / 2; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1384 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1385 avs_width = ComputeMaxSize(this->avs->smallest_x, this->avs->smallest_x + avs_width, this->avs->GetHorizontalStepSize(sizing)); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1386 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1387 uint acs_width = given_width - // Remaining space, including horizontal padding. |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1388 inf_width - this->inf->padding_left - this->inf->padding_right - |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1389 avs_width - this->avs->padding_left - this->avs->padding_right - 2 * INTER_COLUMN_SPACING; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1390 acs_width = ComputeMaxSize(min_acs_width, acs_width, this->acs->GetHorizontalStepSize(sizing)) - |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1391 this->acs->padding_left - this->acs->padding_right; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1392 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1393 uint avs_height = ComputeMaxSize(this->avs->smallest_y, given_height, this->avs->GetVerticalStepSize(sizing)); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1394 uint acs_height = ComputeMaxSize(this->acs->smallest_y, given_height, this->acs->GetVerticalStepSize(sizing)); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1395 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1396 /* Assign size and position to the childs. */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1397 if (rtl) { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1398 x += this->inf->padding_left; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1399 this->inf->AssignSizePosition(sizing, x, y + this->inf->padding_top, inf_width, inf_height, rtl); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1400 x += inf_width + this->inf->padding_right + INTER_COLUMN_SPACING; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1401 } else { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1402 x += this->avs->padding_left; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1403 this->avs->AssignSizePosition(sizing, x, y + this->avs->padding_top, avs_width, avs_height, rtl); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1404 x += avs_width + this->avs->padding_right + INTER_COLUMN_SPACING; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1405 } |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1406 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1407 x += this->acs->padding_left; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1408 this->acs->AssignSizePosition(sizing, x, y + this->acs->padding_top, acs_width, acs_height, rtl); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1409 x += acs_width + this->acs->padding_right + INTER_COLUMN_SPACING; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1410 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1411 if (rtl) { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1412 x += this->avs->padding_left; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1413 this->avs->AssignSizePosition(sizing, x, y + this->avs->padding_top, avs_width, avs_height, rtl); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1414 } else { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1415 x += this->inf->padding_left; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1416 this->inf->AssignSizePosition(sizing, x, y + this->inf->padding_top, inf_width, inf_height, rtl); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1417 } |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1418 } else { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1419 /* Two columns, all space in extra_width goes to both lists. Since the lists are underneath each other, |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1420 * the column is min_list_width wide at least. */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1421 uint avs_width = ComputeMaxSize(this->avs->smallest_x, this->avs->smallest_x + avs_extra_width + extra_width, |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1422 this->avs->GetHorizontalStepSize(sizing)); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1423 uint acs_width = ComputeMaxSize(this->acs->smallest_x, this->acs->smallest_x + acs_extra_width + extra_width, |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1424 this->acs->GetHorizontalStepSize(sizing)); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1425 |
16393
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1426 uint min_avs_height = (!this->editable) ? 0 : this->avs->smallest_y + this->avs->padding_top + this->avs->padding_bottom + INTER_LIST_SPACING; |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1427 uint min_acs_height = this->acs->smallest_y + this->acs->padding_top + this->acs->padding_bottom; |
16393
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1428 uint extra_height = given_height - min_acs_height - min_avs_height; |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1429 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1430 uint avs_height = ComputeMaxSize(this->avs->smallest_y, this->avs->smallest_y + extra_height / 2, this->avs->GetVerticalStepSize(sizing)); |
16393
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1431 if (this->editable) extra_height -= avs_height - this->avs->smallest_y; |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1432 uint acs_height = ComputeMaxSize(this->acs->smallest_y, this->acs->smallest_y + extra_height, this->acs->GetVerticalStepSize(sizing)); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1433 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1434 /* Assign size and position to the childs. */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1435 if (rtl) { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1436 x += this->inf->padding_left; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1437 this->inf->AssignSizePosition(sizing, x, y + this->inf->padding_top, inf_width, inf_height, rtl); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1438 x += inf_width + this->inf->padding_right + INTER_COLUMN_SPACING; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1439 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1440 uint ypos = y + this->acs->padding_top; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1441 this->acs->AssignSizePosition(sizing, x + this->acs->padding_left, ypos, acs_width, acs_height, rtl); |
16393
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1442 if (this->editable) { |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1443 ypos += acs_height + this->acs->padding_bottom + INTER_LIST_SPACING + this->avs->padding_top; |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1444 this->avs->AssignSizePosition(sizing, x + this->avs->padding_left, ypos, avs_width, avs_height, rtl); |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1445 } else { |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1446 this->avs->AssignSizePosition(sizing, 0, 0, this->avs->smallest_x, this->avs->smallest_y, rtl); |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1447 } |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1448 } else { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1449 uint ypos = y + this->acs->padding_top; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1450 this->acs->AssignSizePosition(sizing, x + this->acs->padding_left, ypos, acs_width, acs_height, rtl); |
16393
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1451 if (this->editable) { |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1452 ypos += acs_height + this->acs->padding_bottom + INTER_LIST_SPACING + this->avs->padding_top; |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1453 this->avs->AssignSizePosition(sizing, x + this->avs->padding_left, ypos, avs_width, avs_height, rtl); |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1454 } else { |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1455 this->avs->AssignSizePosition(sizing, 0, 0, this->avs->smallest_x, this->avs->smallest_y, rtl); |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1456 } |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1457 uint dx = this->acs->current_x + this->acs->padding_left + this->acs->padding_right; |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1458 if (this->editable) { |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1459 dx = max(dx, this->avs->current_x + this->avs->padding_left + this->avs->padding_right); |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1460 } |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1461 x += dx + INTER_COLUMN_SPACING + this->inf->padding_left; |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1462 this->inf->AssignSizePosition(sizing, x, y + this->inf->padding_top, inf_width, inf_height, rtl); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1463 } |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1464 } |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1465 } |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1466 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1467 virtual NWidgetCore *GetWidgetFromPos(int x, int y) |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1468 { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1469 if (!IsInsideBS(x, this->pos_x, this->current_x) || !IsInsideBS(y, this->pos_y, this->current_y)) return NULL; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1470 |
16393
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1471 NWidgetCore *nw = (this->editable) ? this->avs->GetWidgetFromPos(x, y) : NULL; |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1472 if (nw == NULL) nw = this->acs->GetWidgetFromPos(x, y); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1473 if (nw == NULL) nw = this->inf->GetWidgetFromPos(x, y); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1474 return nw; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1475 } |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1476 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1477 virtual void Draw(const Window *w) |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1478 { |
16393
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1479 if (this->editable) this->avs->Draw(w); |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1480 this->acs->Draw(w); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1481 this->inf->Draw(w); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1482 } |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1483 }; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1484 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1485 const uint NWidgetNewGRFDisplay::INTER_LIST_SPACING = WD_RESIZEBOX_WIDTH + 1; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1486 const uint NWidgetNewGRFDisplay::INTER_COLUMN_SPACING = WD_RESIZEBOX_WIDTH; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1487 const uint NWidgetNewGRFDisplay::MAX_EXTRA_INFO_WIDTH = 150; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1488 const uint NWidgetNewGRFDisplay::MIN_EXTRA_FOR_3_COLUMNS = 50; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1489 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1490 static const NWidgetPart _nested_newgrf_actives_widgets[] = { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1491 /* Left side, presets. */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1492 NWidget(NWID_HORIZONTAL), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1493 NWidget(WWT_TEXT, COLOUR_MAUVE), SetDataTip(STR_NEWGRF_SETTINGS_SELECT_PRESET, STR_NULL), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1494 SetPadding(0, WD_FRAMETEXT_RIGHT, 0, 0), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1495 NWidget(WWT_DROPDOWN, COLOUR_YELLOW, SNGRFS_PRESET_LIST), SetFill(1, 0), SetResize(1, 0), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1496 SetDataTip(STR_JUST_STRING, STR_NEWGRF_SETTINGS_PRESET_LIST_TOOLTIP), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1497 EndContainer(), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1498 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1499 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_PRESET_SAVE), SetFill(1, 0), SetResize(1, 0), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1500 SetDataTip(STR_NEWGRF_SETTINGS_PRESET_SAVE, STR_NEWGRF_SETTINGS_PRESET_SAVE_TOOLTIP), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1501 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_PRESET_DELETE), SetFill(1, 0), SetResize(1, 0), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1502 SetDataTip(STR_NEWGRF_SETTINGS_PRESET_DELETE, STR_NEWGRF_SETTINGS_PRESET_DELETE_TOOLTIP), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1503 EndContainer(), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1504 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1505 NWidget(NWID_SPACER), SetMinimalSize(0, WD_RESIZEBOX_WIDTH), SetResize(1, 0), SetFill(1, 0), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1506 NWidget(WWT_PANEL, COLOUR_MAUVE), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1507 NWidget(WWT_LABEL, COLOUR_MAUVE), SetDataTip(STR_NEWGRF_SETTINGS_ACTIVE_LIST, STR_NULL), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1508 SetFill(1, 0), SetResize(1, 0), SetPadding(3, WD_FRAMETEXT_RIGHT, 0, WD_FRAMETEXT_LEFT), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1509 /* Left side, active grfs. */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1510 NWidget(NWID_HORIZONTAL), SetPadding(0, 2, 0, 2), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1511 NWidget(WWT_PANEL, COLOUR_MAUVE), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1512 NWidget(WWT_INSET, COLOUR_MAUVE, SNGRFS_FILE_LIST), SetMinimalSize(100, 1), SetPadding(2, 2, 2, 2), |
15778
4f4c3160cca8
(svn r20452) -Codechange: Remove NWidgetCore::FindScrollbar() and associate scrollbar explicitly using a NWidgetPart via SetScrollbar().
frosch <frosch@openttd.org>
parents:
15626
diff
changeset
|
1513 SetFill(1, 1), SetResize(1, 1), SetScrollbar(SNGRFS_SCROLLBAR), |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1514 EndContainer(), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1515 EndContainer(), |
15787
6c4bec3b8401
(svn r20461) -Codechange: Replace WWT_HSCROLLBAR, WWT_SCROLLBAR and WWT_SCROLL2BAR with NWID_HSCROLLBAR and NWID_VSCROLLBAR.
frosch <frosch@openttd.org>
parents:
15779
diff
changeset
|
1516 NWidget(NWID_VSCROLLBAR, COLOUR_MAUVE, SNGRFS_SCROLLBAR), |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1517 EndContainer(), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1518 /* Buttons. */ |
16394
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1519 NWidget(NWID_SELECTION, INVALID_COLOUR, SNGRFS_SHOW_REMOVE), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1520 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPadding(2, 2, 2, 2), SetPIP(0, WD_RESIZEBOX_WIDTH, 0), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1521 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_REMOVE), SetFill(1, 0), SetResize(1, 0), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1522 SetDataTip(STR_NEWGRF_SETTINGS_REMOVE, STR_NEWGRF_SETTINGS_REMOVE_TOOLTIP), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1523 NWidget(NWID_VERTICAL), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1524 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_MOVE_UP), SetFill(1, 0), SetResize(1, 0), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1525 SetDataTip(STR_NEWGRF_SETTINGS_MOVEUP, STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1526 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_MOVE_DOWN), SetFill(1, 0), SetResize(1, 0), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1527 SetDataTip(STR_NEWGRF_SETTINGS_MOVEDOWN, STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1528 EndContainer(), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1529 EndContainer(), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1530 |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1531 NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPadding(2, 2, 2, 2), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1532 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_RESCAN_FILES2), SetFill(1, 0), SetResize(1, 0), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1533 SetDataTip(STR_NEWGRF_SETTINGS_RESCAN_FILES, STR_NEWGRF_SETTINGS_RESCAN_FILES_TOOLTIP), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1534 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_CONTENT_DOWNLOAD2), SetFill(1, 0), SetResize(1, 0), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1535 SetDataTip(STR_INTRO_ONLINE_CONTENT, STR_INTRO_TOOLTIP_ONLINE_CONTENT), |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1536 EndContainer(), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1537 EndContainer(), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1538 EndContainer(), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1539 }; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1540 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1541 static const NWidgetPart _nested_newgrf_availables_widgets[] = { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1542 NWidget(WWT_PANEL, COLOUR_MAUVE), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1543 NWidget(WWT_LABEL, COLOUR_MAUVE), SetDataTip(STR_NEWGRF_SETTINGS_INACTIVE_LIST, STR_NULL), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1544 SetFill(1, 0), SetResize(1, 0), SetPadding(3, WD_FRAMETEXT_RIGHT, 0, WD_FRAMETEXT_LEFT), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1545 /* Left side, available grfs, filter edit box. */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1546 NWidget(NWID_HORIZONTAL), SetPadding(WD_TEXTPANEL_TOP, 0, WD_TEXTPANEL_BOTTOM, 0), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1547 SetPIP(WD_FRAMETEXT_LEFT, WD_FRAMETEXT_RIGHT, WD_FRAMETEXT_RIGHT), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1548 NWidget(WWT_TEXT, COLOUR_MAUVE), SetFill(0, 1), SetDataTip(STR_NEWGRF_FILTER_TITLE, STR_NULL), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1549 NWidget(WWT_EDITBOX, COLOUR_MAUVE, SNGRFS_FILTER), SetFill(1, 0), SetMinimalSize(50, 12), SetResize(1, 0), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1550 SetDataTip(STR_LIST_FILTER_OSKTITLE, STR_LIST_FILTER_TOOLTIP), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1551 EndContainer(), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1552 /* Left side, available grfs. */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1553 NWidget(NWID_HORIZONTAL), SetPadding(0, 2, 0, 2), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1554 NWidget(WWT_PANEL, COLOUR_MAUVE), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1555 NWidget(WWT_INSET, COLOUR_MAUVE, SNGRFS_AVAIL_LIST), SetMinimalSize(100, 1), SetPadding(2, 2, 2, 2), |
15778
4f4c3160cca8
(svn r20452) -Codechange: Remove NWidgetCore::FindScrollbar() and associate scrollbar explicitly using a NWidgetPart via SetScrollbar().
frosch <frosch@openttd.org>
parents:
15626
diff
changeset
|
1556 SetFill(1, 1), SetResize(1, 1), SetScrollbar(SNGRFS_SCROLL2BAR), |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1557 EndContainer(), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1558 EndContainer(), |
15787
6c4bec3b8401
(svn r20461) -Codechange: Replace WWT_HSCROLLBAR, WWT_SCROLLBAR and WWT_SCROLL2BAR with NWID_HSCROLLBAR and NWID_VSCROLLBAR.
frosch <frosch@openttd.org>
parents:
15779
diff
changeset
|
1559 NWidget(NWID_VSCROLLBAR, COLOUR_MAUVE, SNGRFS_SCROLL2BAR), |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1560 EndContainer(), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1561 /* Left side, available grfs, buttons. */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1562 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPadding(2, 2, 2, 2), SetPIP(0, WD_RESIZEBOX_WIDTH, 0), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1563 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_ADD), SetFill(1, 0), SetResize(1, 0), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1564 SetDataTip(STR_NEWGRF_SETTINGS_ADD, STR_NEWGRF_SETTINGS_ADD_FILE_TOOLTIP), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1565 NWidget(NWID_VERTICAL), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1566 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_RESCAN_FILES), SetFill(1, 0), SetResize(1, 0), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1567 SetDataTip(STR_NEWGRF_SETTINGS_RESCAN_FILES, STR_NEWGRF_SETTINGS_RESCAN_FILES_TOOLTIP), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1568 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_CONTENT_DOWNLOAD), SetFill(1, 0), SetResize(1, 0), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1569 SetDataTip(STR_INTRO_ONLINE_CONTENT, STR_INTRO_TOOLTIP_ONLINE_CONTENT), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1570 EndContainer(), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1571 EndContainer(), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1572 EndContainer(), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1573 }; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1574 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1575 static const NWidgetPart _nested_newgrf_infopanel_widgets[] = { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1576 /* Right side, info panel. */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1577 NWidget(WWT_PANEL, COLOUR_MAUVE), SetPadding(0, 0, 2, 0), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1578 NWidget(WWT_EMPTY, COLOUR_MAUVE, SNGRFS_NEWGRF_INFO_TITLE), SetFill(1, 0), SetResize(1, 0), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1579 NWidget(WWT_EMPTY, COLOUR_MAUVE, SNGRFS_NEWGRF_INFO), SetFill(1, 1), SetResize(1, 1), SetMinimalSize(150, 100), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1580 EndContainer(), |
16395
2bef44471f4d
(svn r21111) -Add: Remove the buttons below the newgrf details if the list is not editable.
alberth <alberth@openttd.org>
parents:
16394
diff
changeset
|
1581 NWidget(NWID_SELECTION, INVALID_COLOUR, SNGRFS_SHOW_APPLY), |
2bef44471f4d
(svn r21111) -Add: Remove the buttons below the newgrf details if the list is not editable.
alberth <alberth@openttd.org>
parents:
16394
diff
changeset
|
1582 /* Right side, buttons. */ |
2bef44471f4d
(svn r21111) -Add: Remove the buttons below the newgrf details if the list is not editable.
alberth <alberth@openttd.org>
parents:
16394
diff
changeset
|
1583 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(0, WD_RESIZEBOX_WIDTH, 0), |
2bef44471f4d
(svn r21111) -Add: Remove the buttons below the newgrf details if the list is not editable.
alberth <alberth@openttd.org>
parents:
16394
diff
changeset
|
1584 NWidget(NWID_VERTICAL), |
2bef44471f4d
(svn r21111) -Add: Remove the buttons below the newgrf details if the list is not editable.
alberth <alberth@openttd.org>
parents:
16394
diff
changeset
|
1585 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_SET_PARAMETERS), SetFill(1, 0), SetResize(1, 0), |
2bef44471f4d
(svn r21111) -Add: Remove the buttons below the newgrf details if the list is not editable.
alberth <alberth@openttd.org>
parents:
16394
diff
changeset
|
1586 SetDataTip(STR_NEWGRF_SETTINGS_SET_PARAMETERS, STR_NULL), |
2bef44471f4d
(svn r21111) -Add: Remove the buttons below the newgrf details if the list is not editable.
alberth <alberth@openttd.org>
parents:
16394
diff
changeset
|
1587 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_TOGGLE_PALETTE), SetFill(1, 0), SetResize(1, 0), |
2bef44471f4d
(svn r21111) -Add: Remove the buttons below the newgrf details if the list is not editable.
alberth <alberth@openttd.org>
parents:
16394
diff
changeset
|
1588 SetDataTip(STR_NEWGRF_SETTINGS_TOGGLE_PALETTE, STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP), |
2bef44471f4d
(svn r21111) -Add: Remove the buttons below the newgrf details if the list is not editable.
alberth <alberth@openttd.org>
parents:
16394
diff
changeset
|
1589 EndContainer(), |
2bef44471f4d
(svn r21111) -Add: Remove the buttons below the newgrf details if the list is not editable.
alberth <alberth@openttd.org>
parents:
16394
diff
changeset
|
1590 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, SNGRFS_APPLY_CHANGES), SetFill(1, 0), SetResize(1, 0), |
2bef44471f4d
(svn r21111) -Add: Remove the buttons below the newgrf details if the list is not editable.
alberth <alberth@openttd.org>
parents:
16394
diff
changeset
|
1591 SetDataTip(STR_NEWGRF_SETTINGS_APPLY_CHANGES, STR_NULL), |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1592 EndContainer(), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1593 EndContainer(), |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1594 }; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1595 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1596 /** Construct nested container widget for managing the lists and the info panel of the NewGRF GUI. */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1597 NWidgetBase* NewGRFDisplay(int *biggest_index) |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1598 { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1599 NWidgetBase *avs = MakeNWidgets(_nested_newgrf_availables_widgets, lengthof(_nested_newgrf_availables_widgets), biggest_index, NULL); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1600 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1601 int biggest2; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1602 NWidgetBase *acs = MakeNWidgets(_nested_newgrf_actives_widgets, lengthof(_nested_newgrf_actives_widgets), &biggest2, NULL); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1603 *biggest_index = max(*biggest_index, biggest2); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1604 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1605 NWidgetBase *inf = MakeNWidgets(_nested_newgrf_infopanel_widgets, lengthof(_nested_newgrf_infopanel_widgets), &biggest2, NULL); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1606 *biggest_index = max(*biggest_index, biggest2); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1607 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1608 return new NWidgetNewGRFDisplay(avs, acs, inf); |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1609 } |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1610 |
8025
7a501cf42789
(svn r11585) -Codechange: Enumify the widgets of the newGRF gui and a slight cleanup there
skidd13 <skidd13@openttd.org>
parents:
8019
diff
changeset
|
1611 /* Widget definition of the manage newgrfs window */ |
11796
b89215528d20
(svn r16186) -Codechange: Adding nested widgets to _newgrf_desc and _newgrf_add_dlg_desc window descriptions.
alberth <alberth@openttd.org>
parents:
11795
diff
changeset
|
1612 static const NWidgetPart _nested_newgrf_widgets[] = { |
b89215528d20
(svn r16186) -Codechange: Adding nested widgets to _newgrf_desc and _newgrf_add_dlg_desc window descriptions.
alberth <alberth@openttd.org>
parents:
11795
diff
changeset
|
1613 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
|
1614 NWidget(WWT_CLOSEBOX, COLOUR_MAUVE), |
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
|
1615 NWidget(WWT_CAPTION, COLOUR_MAUVE), SetDataTip(STR_NEWGRF_SETTINGS_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), |
11796
b89215528d20
(svn r16186) -Codechange: Adding nested widgets to _newgrf_desc and _newgrf_add_dlg_desc window descriptions.
alberth <alberth@openttd.org>
parents:
11795
diff
changeset
|
1616 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
|
1617 NWidget(WWT_PANEL, COLOUR_MAUVE), |
15216
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1618 NWidgetFunction(NewGRFDisplay), SetPadding(WD_RESIZEBOX_WIDTH, WD_RESIZEBOX_WIDTH, 2, WD_RESIZEBOX_WIDTH), |
15211
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
1619 /* Resize button. */ |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
1620 NWidget(NWID_HORIZONTAL), |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
1621 NWidget(NWID_SPACER), SetFill(1, 0), SetResize(1, 0), |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
1622 NWidget(WWT_RESIZEBOX, COLOUR_MAUVE), |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
1623 EndContainer(), |
11796
b89215528d20
(svn r16186) -Codechange: Adding nested widgets to _newgrf_desc and _newgrf_add_dlg_desc window descriptions.
alberth <alberth@openttd.org>
parents:
11795
diff
changeset
|
1624 EndContainer(), |
b89215528d20
(svn r16186) -Codechange: Adding nested widgets to _newgrf_desc and _newgrf_add_dlg_desc window descriptions.
alberth <alberth@openttd.org>
parents:
11795
diff
changeset
|
1625 }; |
b89215528d20
(svn r16186) -Codechange: Adding nested widgets to _newgrf_desc and _newgrf_add_dlg_desc window descriptions.
alberth <alberth@openttd.org>
parents:
11795
diff
changeset
|
1626 |
8025
7a501cf42789
(svn r11585) -Codechange: Enumify the widgets of the newGRF gui and a slight cleanup there
skidd13 <skidd13@openttd.org>
parents:
8019
diff
changeset
|
1627 /* Window definition of the manage newgrfs window */ |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11208
diff
changeset
|
1628 static const WindowDesc _newgrf_desc( |
13796
3e68f07eb821
(svn r18322) -Codechange: remove the WDP duplication; no need to tell the same twice.
rubidium <rubidium@openttd.org>
parents:
13755
diff
changeset
|
1629 WDP_CENTER, 300, 263, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5668
diff
changeset
|
1630 WC_GAME_OPTIONS, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13705
diff
changeset
|
1631 WDF_UNCLICK_BUTTONS, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13419
diff
changeset
|
1632 _nested_newgrf_widgets, lengthof(_nested_newgrf_widgets) |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11208
diff
changeset
|
1633 ); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1634 |
15620
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
1635 /** |
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
1636 * Callback function for the newgrf 'apply changes' confirmation window |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1637 * @param w Window which is calling this callback |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1638 * @param confirmed boolean value, true when yes was clicked, false otherwise |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1639 */ |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1640 static void NewGRFConfirmationCallback(Window *w, bool confirmed) |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1641 { |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1642 if (confirmed) { |
16116
50a0ec38c886
(svn r20812) -Fix [FS#4125]: crash when confirming newgrf changes with the newgrf parameter window open
yexo <yexo@openttd.org>
parents:
16086
diff
changeset
|
1643 DeleteWindowByClass(WC_GRF_PARAMETERS); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1644 NewGRFWindow *nw = dynamic_cast<NewGRFWindow*>(w); |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1645 |
9457
267a95510fdf
(svn r13375) -Add: logging of actions that could possibly cause desyncs and crashes to simplify debugging. See readme.txt for details
smatz <smatz@openttd.org>
parents:
9317
diff
changeset
|
1646 GamelogStartAction(GLAT_GRF); |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1647 GamelogGRFUpdate(_grfconfig, nw->actives); // log GRF changes |
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1648 CopyGRFConfigList(nw->orig_list, nw->actives, false); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1649 ReloadNewGRFData(); |
9457
267a95510fdf
(svn r13375) -Add: logging of actions that could possibly cause desyncs and crashes to simplify debugging. See readme.txt for details
smatz <smatz@openttd.org>
parents:
9317
diff
changeset
|
1650 GamelogStopAction(); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1651 |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1652 /* Show new, updated list */ |
15201
071e920abcfb
(svn r19830) -Codechange: Move variable declarations to their first use.
alberth <alberth@openttd.org>
parents:
15200
diff
changeset
|
1653 GRFConfig *c; |
071e920abcfb
(svn r19830) -Codechange: Move variable declarations to their first use.
alberth <alberth@openttd.org>
parents:
15200
diff
changeset
|
1654 int i = 0; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1655 for (c = nw->actives; c != NULL && c != nw->active_sel; c = c->next, i++) {} |
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1656 CopyGRFConfigList(&nw->actives, *nw->orig_list, false); |
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1657 for (c = nw->actives; c != NULL && i > 0; c = c->next, i--) {} |
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1658 nw->active_sel = c; |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1659 nw->avails.ForceRebuild(); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1660 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1661 w->InvalidateData(); |
15982
62befe1b097c
(svn r20670) -Add: support for action F
rubidium <rubidium@openttd.org>
parents:
15920
diff
changeset
|
1662 |
62befe1b097c
(svn r20670) -Add: support for action F
rubidium <rubidium@openttd.org>
parents:
15920
diff
changeset
|
1663 ReInitAllWindows(); |
62befe1b097c
(svn r20670) -Add: support for action F
rubidium <rubidium@openttd.org>
parents:
15920
diff
changeset
|
1664 DeleteWindowByClass(WC_BUILD_OBJECT); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1665 } |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1666 } |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1667 |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1668 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1669 |
15620
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
1670 /** |
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
1671 * Setup the NewGRF gui |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1672 * @param editable allow the user to make changes to the grfconfig in 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
|
1673 * @param show_params show information about what parameters are set for the grf files |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1674 * @param exec_changes if changes are made to the list (editable is true), apply these |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1675 * changes immediately or only update the list |
15623
c62577640878
(svn r20286) -Codechange: Unify end of doxygen comments.
frosch <frosch@openttd.org>
parents:
15620
diff
changeset
|
1676 * @param config pointer to a linked-list of grfconfig's that will be shown |
c62577640878
(svn r20286) -Codechange: Unify end of doxygen comments.
frosch <frosch@openttd.org>
parents:
15620
diff
changeset
|
1677 */ |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1678 void ShowNewGRFSettings(bool editable, bool show_params, bool exec_changes, GRFConfig **config) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1679 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1680 DeleteWindowByClass(WC_GAME_OPTIONS); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1681 new NewGRFWindow(&_newgrf_desc, editable, show_params, exec_changes, config); |
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 } |