Mercurial > hg > openttd
annotate src/newgrf_gui.cpp @ 17486:e7672bafbe1c draft
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
author | frosch <frosch@openttd.org> |
---|---|
date | Sun, 13 Mar 2011 21:31:29 +0000 |
parents | 5a60038ce980 |
children | 105b4e4eb168 |
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); |
17077
5a60038ce980
(svn r21814) -Fix/Add: Check GRF version from action 8, and disallow usage of GRFs with versions above 7.
frosch <frosch@openttd.org>
parents:
16614
diff
changeset
|
118 if (HasBit(c->flags, GCF_INVALID)) y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_INCOMPATIBLE); |
13017
ab07d6d87608
(svn r17511) -Codechange: Simplify ShowNewGRFInfo() by passing 'right' instead of 'width'.
frosch <frosch@openttd.org>
parents:
12879
diff
changeset
|
119 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
|
120 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
121 /* 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
|
122 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
|
123 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
|
124 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
|
125 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
|
126 } else { |
13017
ab07d6d87608
(svn r17511) -Codechange: Simplify ShowNewGRFInfo() by passing 'right' instead of 'width'.
frosch <frosch@openttd.org>
parents:
12879
diff
changeset
|
127 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
|
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 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
130 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
131 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
132 /** 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
|
133 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
|
134 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
|
135 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
|
136 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
|
137 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
|
138 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
|
139 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
|
140 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
|
141 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
|
142 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
|
143 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
|
144 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
|
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 /** |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
148 * 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
|
149 */ |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
150 struct NewGRFParametersWindow : public Window { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
151 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
|
152 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
|
153 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
|
154 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
|
155 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
|
156 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
|
157 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
|
158 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
|
159 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
|
160 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
161 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
|
162 grf_config(c), |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
163 clicked_button(UINT_MAX), |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
164 timeout(0), |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
165 clicked_row(UINT_MAX) |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
166 { |
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
|
167 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
|
168 |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
169 this->CreateNestedTree(desc); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
170 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
|
171 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
|
172 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
|
173 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
|
174 |
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
|
175 this->InvalidateData(); |
15598
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 /** |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
179 * 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
|
180 * @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
|
181 * @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
|
182 */ |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
183 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
|
184 { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
185 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
|
186 return &dummy_parameter_info; |
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 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
189 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
|
190 { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
191 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
|
192 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
|
193 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
|
194 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
|
195 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
|
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 |
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 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
|
199 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
|
200 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
|
201 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
|
202 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
|
203 *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
|
204 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
|
205 } |
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
|
206 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
207 case GRFPAR_WIDGET_BACKGROUND: |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
208 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
|
209 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
210 resize->width = 1; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
211 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
|
212 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
|
213 break; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
214 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
215 case GRFPAR_WIDGET_DESCRIPTION: |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
216 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
|
217 break; |
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 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
220 |
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
|
221 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
|
222 { |
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 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
|
224 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
|
225 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
|
226 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
|
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 } |
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
|
229 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
230 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
|
231 { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
232 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
|
233 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
|
234 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
|
235 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
|
236 if (desc == NULL) return; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
237 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
|
238 return; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
239 } 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
|
240 return; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
241 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
242 |
16441
86fd9bcc9d2f
(svn r21157) -Codechange: remove information about the text direction out of the language "list"
rubidium <rubidium@openttd.org>
parents:
16395
diff
changeset
|
243 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
|
244 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
|
245 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
|
246 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
|
247 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
248 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
|
249 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
|
250 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
|
251 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
|
252 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
|
253 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
|
254 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
255 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
|
256 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
|
257 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
|
258 } 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
|
259 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
|
260 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
|
261 SetDParam(3, current_value); |
16250
dd6d2c758c96
(svn r20951) -Codechange: Add SmallMap::Contains() and use it.
frosch <frosch@openttd.org>
parents:
16116
diff
changeset
|
262 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
|
263 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
|
264 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
|
265 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
|
266 SetDParamStr(3, label); |
15598
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 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
271 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
|
272 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
|
273 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
|
274 SetDParamStr(1, name); |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
275 } 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
|
276 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
|
277 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
|
278 } |
15804
cefe74c2f556
(svn r20479) -Change: Use 'Buttons Name: Value' layout for AI and NewGRF parameter GUI.
frosch <frosch@openttd.org>
parents:
15787
diff
changeset
|
279 |
cefe74c2f556
(svn r20479) -Change: Use 'Buttons Name: Value' layout for AI and NewGRF parameter GUI.
frosch <frosch@openttd.org>
parents:
15787
diff
changeset
|
280 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
|
281 y += this->line_height; |
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 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
285 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
|
286 { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
287 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
|
288 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
|
289 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
|
290 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
|
291 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
|
292 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
|
293 } |
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 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
|
295 |
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 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
|
297 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
|
298 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
|
299 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
|
300 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
|
301 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
|
302 } |
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 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
|
304 } |
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
|
305 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
306 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
|
307 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
|
308 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
|
309 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
|
310 DeleteChildWindows(WC_QUERY_STRING); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
311 this->clicked_row = num; |
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 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
314 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
|
315 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
|
316 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
|
317 x -= 4; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
318 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
319 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
|
320 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
|
321 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
322 /* 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
|
323 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
|
324 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
|
325 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
|
326 val = !val; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
327 } else { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
328 if (x >= 10) { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
329 /* Increase button clicked */ |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
330 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
|
331 this->clicked_increase = true; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
332 } else { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
333 /* Decrease button clicked */ |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
334 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
|
335 this->clicked_increase = false; |
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 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
338 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
|
339 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
340 this->clicked_button = num; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
341 this->timeout = 5; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
342 } 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
|
343 /* 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
|
344 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
|
345 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
|
346 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
347 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
348 this->SetDirty(); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
349 break; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
350 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
351 |
15920
74e5e0907a80
(svn r20604) -Feature: add a reset button to the newgrf parameters window
yexo <yexo@openttd.org>
parents:
15917
diff
changeset
|
352 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
|
353 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
|
354 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
|
355 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
|
356 break; |
74e5e0907a80
(svn r20604) -Feature: add a reset button to the newgrf parameters window
yexo <yexo@openttd.org>
parents:
15917
diff
changeset
|
357 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
358 case GRFPAR_WIDGET_ACCEPT: |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
359 delete this; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
360 break; |
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 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
364 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
|
365 { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
366 if (StrEmpty(str)) return; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
367 int32 value = atoi(str); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
368 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
|
369 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
|
370 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
|
371 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
|
372 this->SetDirty(); |
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 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
375 virtual void OnResize() |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
376 { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
377 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
|
378 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
|
379 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
|
380 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
381 |
17486
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17077
diff
changeset
|
382 /** |
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17077
diff
changeset
|
383 * Some data on this window has become invalid. |
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17077
diff
changeset
|
384 * @param data Information about the changed data. |
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17077
diff
changeset
|
385 * @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details. |
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17077
diff
changeset
|
386 */ |
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17077
diff
changeset
|
387 virtual void OnInvalidateData(int data = 0, bool gui_scope = true) |
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
|
388 { |
17486
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17077
diff
changeset
|
389 if (!gui_scope) return; |
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
|
390 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
|
391 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
|
392 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
|
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 |
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
|
395 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
|
396 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
|
397 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
|
398 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
|
399 } |
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
|
400 } |
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
|
401 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
402 virtual void OnTick() |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
403 { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
404 if (--this->timeout == 0) { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
405 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
|
406 this->SetDirty(); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
407 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
408 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
409 }; |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
410 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
|
411 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
412 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
413 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
|
414 NWidget(NWID_HORIZONTAL), |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
415 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
|
416 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
|
417 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
|
418 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
|
419 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
|
420 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
|
421 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
|
422 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
|
423 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
|
424 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
|
425 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
|
426 EndContainer(), |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
427 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
|
428 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
|
429 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
|
430 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
|
431 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
|
432 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
|
433 EndContainer(), |
15598
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 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
|
436 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
|
437 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
|
438 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
|
439 EndContainer(), |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
440 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
|
441 EndContainer(), |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
442 }; |
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 /* 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
|
445 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
|
446 WDP_CENTER, 500, 208, |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
447 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
|
448 WDF_UNCLICK_BUTTONS, |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
449 _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
|
450 ); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
451 |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
452 void OpenGRFParameterWindow(GRFConfig *c) |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
453 { |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
454 DeleteWindowByClass(WC_GRF_PARAMETERS); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
455 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
|
456 } |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
457 |
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
|
458 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
|
459 |
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 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
|
461 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
|
462 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
|
463 |
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
|
464 virtual ~DropDownListPresetItem() {} |
9864
199cb67d074d
(svn r14009) -Cleanup (r14008): Bad whitespace...
peter1138 <peter1138@openttd.org>
parents:
9863
diff
changeset
|
465 |
9863
3db7ce31355e
(svn r14008) -Fix (r14004): NewGRF preset drop down list not working
peter1138 <peter1138@openttd.org>
parents:
9760
diff
changeset
|
466 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
|
467 { |
9863
3db7ce31355e
(svn r14008) -Fix (r14004): NewGRF preset drop down list not working
peter1138 <peter1138@openttd.org>
parents:
9760
diff
changeset
|
468 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
|
469 } |
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
|
470 |
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
|
471 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
|
472 { |
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
|
473 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
|
474 } |
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
|
475 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
476 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
477 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
|
478 |
11795
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
479 /** 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
|
480 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
|
481 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
|
482 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
|
483 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
|
484 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
|
485 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
|
486 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
|
487 SNGRFS_MOVE_DOWN, |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
488 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
|
489 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
|
490 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
|
491 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
|
492 SNGRFS_SCROLL2BAR, |
15204
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
493 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
|
494 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
|
495 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
|
496 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
|
497 SNGRFS_APPLY_CHANGES, |
15211
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
498 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
|
499 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
|
500 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
|
501 SNGRFS_CONTENT_DOWNLOAD2, |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
502 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
|
503 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
|
504 }; |
8f4775ec6562
(svn r16185) -Codechange: Moving the ShowNewGRFStateWidgets and AddNewGRFWindowWidgets widget enums outside their window structs.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
505 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
506 /** |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
507 * Window for showing NewGRF files |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
508 */ |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
509 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
|
510 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
|
511 |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
512 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
|
513 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
|
514 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
515 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
|
516 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
|
517 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
|
518 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
|
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 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
|
521 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
|
522 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
|
523 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
524 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
|
525 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
|
526 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
527 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
|
528 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
|
529 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
|
530 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
|
531 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
|
532 |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
533 Scrollbar *vscroll; |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
534 Scrollbar *vscroll2; |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
535 |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
536 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
|
537 { |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
538 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
|
539 this->avail_pos = -1; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
540 this->active_sel = NULL; |
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
541 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
|
542 this->orig_list = orig_list; |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
543 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
|
544 this->execute = execute; |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
545 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
|
546 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
|
547 |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
548 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
|
549 GetGRFPresetList(&_grf_preset_list); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
550 |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
551 this->CreateNestedTree(desc); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
552 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
|
553 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
|
554 |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
555 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
|
556 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
|
557 this->FinishInitNested(desc); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
558 |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
559 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
|
560 this->SetFocusedWidget(SNGRFS_FILTER); |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
561 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
562 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
|
563 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
|
564 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
|
565 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
|
566 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
|
567 |
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
|
568 this->OnInvalidateData(2); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
569 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
570 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
571 ~NewGRFWindow() |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
572 { |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
573 DeleteWindowByClass(WC_GRF_PARAMETERS); |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
574 |
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
|
575 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
|
576 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
|
577 ResetGRFConfig(false); |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
578 ReloadNewGRFData(); |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
579 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
580 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
581 /* 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
|
582 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
|
583 _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
|
584 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
585 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
586 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
|
587 { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
588 switch (widget) { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
589 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
|
590 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
|
591 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
|
592 break; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
593 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
594 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
|
595 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
|
596 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
|
597 break; |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
598 |
15204
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
599 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
|
600 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
|
601 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
|
602 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
|
603 break; |
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
604 } |
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
605 |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
606 case SNGRFS_NEWGRF_INFO: |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
607 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
|
608 break; |
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 case SNGRFS_PRESET_LIST: { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
611 Dimension d = GetStringBoundingBox(STR_NUM_CUSTOM); |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
612 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
|
613 if (_grf_preset_list[i] != NULL) { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
614 SetDParamStr(0, _grf_preset_list[i]); |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
615 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
|
616 } |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
617 } |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
618 d.width += padding.width; |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
619 *size = maxdim(d, *size); |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
620 break; |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
621 } |
15194
2d9d9be17bbe
(svn r19823) -Fix: Ensure that both texts of the newgrf gui download button fit.
alberth <alberth@openttd.org>
parents:
15185
diff
changeset
|
622 |
16394
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
623 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
|
624 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
|
625 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
|
626 *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
|
627 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
|
628 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
|
629 break; |
2d9d9be17bbe
(svn r19823) -Fix: Ensure that both texts of the newgrf gui download button fit.
alberth <alberth@openttd.org>
parents:
15185
diff
changeset
|
630 } |
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 |
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
|
634 virtual void OnResize() |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
635 { |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
636 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
|
637 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
|
638 } |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
639 |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
640 virtual void SetStringParameters(int widget) const |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
641 { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
642 switch (widget) { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
643 case SNGRFS_PRESET_LIST: |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
644 if (this->preset == -1) { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
645 SetDParam(0, STR_NUM_CUSTOM); |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
646 } else { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
647 SetDParam(0, STR_JUST_RAW_STRING); |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
648 SetDParamStr(1, _grf_preset_list[this->preset]); |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
649 } |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
650 break; |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
651 } |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
652 } |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
653 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
654 virtual void OnPaint() |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
655 { |
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
|
656 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
|
657 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
|
658 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
659 |
15620
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
660 /** |
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
661 * 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
|
662 * @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
|
663 * @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
|
664 */ |
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 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
|
666 { |
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 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
|
668 |
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 /* 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
|
670 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
|
671 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
|
672 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
|
673 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
|
674 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
|
675 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
|
676 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
|
677 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
|
678 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
|
679 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
|
680 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
|
681 } |
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 /* 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
|
684 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
|
685 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
|
686 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
|
687 } 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
|
688 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
|
689 } |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
690 } |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
691 |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
692 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
|
693 } |
e31a7ac11eb1
(svn r19836) -Codechange: Move sprite palette selection code in NewGRF gui to its own method.
alberth <alberth@openttd.org>
parents:
15205
diff
changeset
|
694 |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
695 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
|
696 { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
697 switch (widget) { |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
698 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
|
699 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
|
700 |
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
|
701 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
|
702 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
|
703 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
|
704 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
|
705 |
16441
86fd9bcc9d2f
(svn r21157) -Codechange: remove information about the text direction out of the language "list"
rubidium <rubidium@openttd.org>
parents:
16395
diff
changeset
|
706 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
|
707 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
|
708 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
|
709 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
|
710 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
|
711 |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
712 int i = 0; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
713 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
|
714 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
|
715 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
|
716 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
|
717 PaletteID pal = this->GetPalette(c); |
13171
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
718 |
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
|
719 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
|
720 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
|
721 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
|
722 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
|
723 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
|
724 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
|
725 } |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
726 } |
15618
e4640748f223
(svn r20281) -Codechange: unify case scope closure + break coding style
rubidium <rubidium@openttd.org>
parents:
15605
diff
changeset
|
727 break; |
e4640748f223
(svn r20281) -Codechange: unify case scope closure + break coding style
rubidium <rubidium@openttd.org>
parents:
15605
diff
changeset
|
728 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
729 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
730 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
|
731 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
|
732 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
733 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
|
734 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
|
735 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
|
736 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
|
737 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
|
738 |
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
|
739 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
|
740 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
|
741 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
|
742 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
|
743 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
744 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
|
745 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
|
746 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
|
747 } |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
748 break; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
749 } |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
750 |
15204
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
751 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
|
752 /* 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
|
753 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
|
754 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
|
755 break; |
f29231ce72e1
(svn r19833) -Change: Modify NewGRF window towards having combined lists, add captions.
alberth <alberth@openttd.org>
parents:
15203
diff
changeset
|
756 |
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 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
|
758 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
|
759 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
|
760 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
|
761 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
|
762 } |
93c95e6c1a53
(svn r17676) -Codechange: make the NewGRF GUI nested
rubidium <rubidium@openttd.org>
parents:
13170
diff
changeset
|
763 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
|
764 } |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
765 } |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
766 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
767 |
14409
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14391
diff
changeset
|
768 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
|
769 { |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
770 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
|
771 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
|
772 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
|
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 /* 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
|
775 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
|
776 |
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 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
|
778 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
|
779 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
|
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 } |
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
|
782 |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
783 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
|
784 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
|
785 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
|
786 } |
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 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
|
789 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
|
790 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
|
791 |
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
|
792 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
|
793 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
|
794 |
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
|
795 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
|
796 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
|
797 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
|
798 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
|
799 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
|
800 break; |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
801 |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
802 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
|
803 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
|
804 |
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
|
805 int pos = 0; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
806 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
|
807 GRFConfig *c = *pc; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
808 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
|
809 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
|
810 this->active_sel->next = c; |
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
811 *pc = this->active_sel; |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
812 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
|
813 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
814 } |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
815 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
|
816 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
|
817 this->InvalidateData(); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
818 break; |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
819 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
820 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
821 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
|
822 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
|
823 |
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
|
824 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
|
825 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
|
826 GRFConfig *c = *pc; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
827 if (c == this->active_sel) { |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
828 *pc = c->next; |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
829 c->next = c->next->next; |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
830 (*pc)->next = c; |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
831 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
|
832 } |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
833 } |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
834 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
|
835 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
|
836 this->InvalidateData(); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
837 break; |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
838 } |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
839 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
840 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
|
841 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
|
842 |
15201
071e920abcfb
(svn r19830) -Codechange: Move variable declarations to their first use.
alberth <alberth@openttd.org>
parents:
15200
diff
changeset
|
843 GRFConfig *c; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
844 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
|
845 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
846 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
|
847 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
|
848 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
|
849 this->avail_pos = -1; |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
850 |
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
|
851 this->InvalidateData(); |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
852 if (click_count == 1) break; |
15626
33d3500b2a62
(svn r20289) -Codechange: Unify fall through coding style.
terkhen <terkhen@openttd.org>
parents:
15623
diff
changeset
|
853 /* FALL THROUGH, with double click. */ |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
854 } |
15626
33d3500b2a62
(svn r20289) -Codechange: Unify fall through coding style.
terkhen <terkhen@openttd.org>
parents:
15623
diff
changeset
|
855 |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
856 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
|
857 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
|
858 DeleteWindowByClass(WC_GRF_PARAMETERS); |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
859 |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
860 /* 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
|
861 GRFConfig *newsel = this->active_sel->next; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
862 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
|
863 GRFConfig *c = *pc; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
864 /* 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
|
865 * 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
|
866 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
|
867 |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
868 if (c == this->active_sel) { |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
869 *pc = c->next; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
870 delete c; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
871 break; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
872 } |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
873 } |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
874 |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
875 this->active_sel = newsel; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
876 this->preset = -1; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
877 this->avail_pos = -1; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
878 this->avail_sel = NULL; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
879 this->avails.ForceRebuild(); |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
880 this->InvalidateData(2); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
881 break; |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
882 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
883 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
884 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
|
885 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
|
886 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
|
887 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
|
888 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
|
889 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
|
890 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
|
891 } |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
892 this->InvalidateData(); |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
893 if (click_count == 1) break; |
15626
33d3500b2a62
(svn r20289) -Codechange: Unify fall through coding style.
terkhen <terkhen@openttd.org>
parents:
15623
diff
changeset
|
894 /* FALL THROUGH, with double click. */ |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
895 } |
15626
33d3500b2a62
(svn r20289) -Codechange: Unify fall through coding style.
terkhen <terkhen@openttd.org>
parents:
15623
diff
changeset
|
896 |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
897 case SNGRFS_ADD: { |
17077
5a60038ce980
(svn r21814) -Fix/Add: Check GRF version from action 8, and disallow usage of GRFs with versions above 7.
frosch <frosch@openttd.org>
parents:
16614
diff
changeset
|
898 if (this->avail_sel == NULL || !this->editable || HasBit(this->avail_sel->flags, GCF_INVALID)) break; |
15212
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 GRFConfig **list; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
901 /* 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
|
902 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
|
903 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
|
904 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
|
905 return; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
906 } |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
907 } |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
908 |
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
|
909 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
|
910 c->SetParameterDefaults(); |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
911 *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
|
912 |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
913 /* 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
|
914 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
|
915 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
|
916 this->avail_pos = new_pos; |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
917 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
|
918 |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
919 this->avails.ForceRebuild(); |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
920 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
|
921 break; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
922 } |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
923 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
924 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
|
925 if (!this->editable) break; |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
926 if (this->execute) { |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
927 ShowQuery( |
12632
e41943276802
(svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents:
12619
diff
changeset
|
928 STR_NEWGRF_POPUP_CAUTION_CAPTION, |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
929 STR_NEWGRF_CONFIRMATION_TEXT, |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
930 this, |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
931 NewGRFConfirmationCallback |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
932 ); |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
933 } else { |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
934 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
|
935 ResetGRFConfig(false); |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
936 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
|
937 } |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
938 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
|
939 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
|
940 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
941 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
|
942 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
|
943 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
944 OpenGRFParameterWindow(this->active_sel); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
945 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
|
946 } |
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
|
947 |
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
|
948 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
|
949 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
|
950 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
|
951 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
|
952 } |
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
|
953 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
|
954 |
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
|
955 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
|
956 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
|
957 if (!_network_available) { |
14645
b7a22979b84e
(svn r19224) -Codechange: change parameters passed to ShowErrorMessage() a bit
smatz <smatz@openttd.org>
parents:
14561
diff
changeset
|
958 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
|
959 } 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
|
960 #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
|
961 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
|
962 |
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
|
963 /* 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
|
964 ContentVector cv; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
965 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
|
966 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
|
967 |
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
|
968 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
|
969 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
|
970 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
|
971 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
|
972 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
|
973 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
|
974 *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
|
975 } |
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
|
976 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
|
977 #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
|
978 } |
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
|
979 break; |
15211
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
980 |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
981 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
|
982 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
|
983 TarScanner::DoScan(); |
15211
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
984 ScanNewGRFFiles(); |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
985 this->avail_sel = NULL; |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
986 this->avail_pos = -1; |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
987 this->avails.ForceRebuild(); |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
988 this->InvalidateData(1); |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
989 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
|
990 InvalidateWindowClassesData(WC_SAVELOAD); |
15211
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
991 break; |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
992 } |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
993 } |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
994 |
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
|
995 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
|
996 { |
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
|
997 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
|
998 |
25371ea61636
(svn r20694) -Fix [FS#4087]: empty newgrf presets were not selectable
yexo <yexo@openttd.org>
parents:
15982
diff
changeset
|
999 ClearGRFConfigList(&this->actives); |
25371ea61636
(svn r20694) -Fix [FS#4087]: empty newgrf presets were not selectable
yexo <yexo@openttd.org>
parents:
15982
diff
changeset
|
1000 this->preset = index; |
25371ea61636
(svn r20694) -Fix [FS#4087]: empty newgrf presets were not selectable
yexo <yexo@openttd.org>
parents:
15982
diff
changeset
|
1001 |
25371ea61636
(svn r20694) -Fix [FS#4087]: empty newgrf presets were not selectable
yexo <yexo@openttd.org>
parents:
15982
diff
changeset
|
1002 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
|
1003 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
|
1004 |
16006
25371ea61636
(svn r20694) -Fix [FS#4087]: empty newgrf presets were not selectable
yexo <yexo@openttd.org>
parents:
15982
diff
changeset
|
1005 this->active_sel = NULL; |
25371ea61636
(svn r20694) -Fix [FS#4087]: empty newgrf presets were not selectable
yexo <yexo@openttd.org>
parents:
15982
diff
changeset
|
1006 this->actives = c; |
25371ea61636
(svn r20694) -Fix [FS#4087]: empty newgrf presets were not selectable
yexo <yexo@openttd.org>
parents:
15982
diff
changeset
|
1007 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
|
1008 } |
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
|
1009 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
1010 DeleteWindowByClass(WC_GRF_PARAMETERS); |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1011 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
|
1012 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
|
1013 } |
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
|
1014 |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1015 virtual void OnQueryTextFinished(char *str) |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1016 { |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1017 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
|
1018 |
15603
ea0089ca72ef
(svn r20264) -Fix (r20258): saving a new preset was broken
yexo <yexo@openttd.org>
parents:
15602
diff
changeset
|
1019 SaveGRFPresetToConfig(str, this->actives); |
ea0089ca72ef
(svn r20264) -Fix (r20258): saving a new preset was broken
yexo <yexo@openttd.org>
parents:
15602
diff
changeset
|
1020 GetGRFPresetList(&_grf_preset_list); |
ea0089ca72ef
(svn r20264) -Fix (r20258): saving a new preset was broken
yexo <yexo@openttd.org>
parents:
15602
diff
changeset
|
1021 |
15598
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
1022 /* Switch to this preset */ |
b5da2954ec59
(svn r20258) -Feature: more user-friendly gui to change NewGRF parameters
yexo <yexo@openttd.org>
parents:
15593
diff
changeset
|
1023 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
|
1024 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
|
1025 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
|
1026 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
|
1027 } |
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
|
1028 } |
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
|
1029 |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1030 this->InvalidateData(); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1031 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1032 |
15620
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
1033 /** |
17486
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17077
diff
changeset
|
1034 * Some data on this window has become invalid. |
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17077
diff
changeset
|
1035 * @param data Information about the changed 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
|
1036 * - 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
|
1037 * - 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
|
1038 * - 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
|
1039 * - 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
|
1040 * - 4: Force a rebuild of the availables, + 2 |
17486
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17077
diff
changeset
|
1041 * @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details. |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1042 */ |
17486
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17077
diff
changeset
|
1043 virtual void OnInvalidateData(int data = 0, bool gui_scope = true) |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1044 { |
17486
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17077
diff
changeset
|
1045 if (!gui_scope) return; |
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
|
1046 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
|
1047 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
|
1048 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
|
1049 /* 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
|
1050 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
|
1051 |
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
|
1052 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
|
1053 /* 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
|
1054 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
|
1055 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
|
1056 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
|
1057 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
|
1058 |
16256
49226e68e209
(svn r20957) -Codechange: Add another parameter to FindGRFConfig() to define search restrictions.
frosch <frosch@openttd.org>
parents:
16250
diff
changeset
|
1059 const GRFConfig *f = FindGRFConfig(c->ident.grfid, FGCM_EXACT, compatible ? c->original_md5sum : c->ident.md5sum); |
17077
5a60038ce980
(svn r21814) -Fix/Add: Check GRF version from action 8, and disallow usage of GRFs with versions above 7.
frosch <frosch@openttd.org>
parents:
16614
diff
changeset
|
1060 if (f == NULL || HasBit(f->flags, GCF_INVALID)) 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
|
1061 |
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
|
1062 *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
|
1063 (*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
|
1064 |
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
|
1065 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
|
1066 |
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
|
1067 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
|
1068 } |
15579
5f128be91f59
(svn r20239) -Doc: Give a common name to all fall throughs (FALL THROUGH).
terkhen <terkhen@openttd.org>
parents:
15563
diff
changeset
|
1069 /* 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
|
1070 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
|
1071 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
|
1072 /* 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
|
1073 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
|
1074 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
|
1075 /* FALL THROUGH */ |
15201
071e920abcfb
(svn r19830) -Codechange: Move variable declarations to their first use.
alberth <alberth@openttd.org>
parents:
15200
diff
changeset
|
1076 case 3: { |
071e920abcfb
(svn r19830) -Codechange: Move variable declarations to their first use.
alberth <alberth@openttd.org>
parents:
15200
diff
changeset
|
1077 int i = 0; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1078 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
|
1079 |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1080 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
|
1081 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
|
1082 |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1083 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
|
1084 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
|
1085 break; |
15201
071e920abcfb
(svn r19830) -Codechange: Move variable declarations to their first use.
alberth <alberth@openttd.org>
parents:
15200
diff
changeset
|
1086 } |
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
|
1087 } |
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 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1089 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
|
1090 |
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
|
1091 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
|
1092 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
|
1093 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
|
1094 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
|
1095 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
|
1096 ); |
17077
5a60038ce980
(svn r21814) -Fix/Add: Check GRF version from action 8, and disallow usage of GRFs with versions above 7.
frosch <frosch@openttd.org>
parents:
16614
diff
changeset
|
1097 this->SetWidgetDisabledState(SNGRFS_ADD, !this->editable || this->avail_sel == NULL || HasBit(this->avail_sel->flags, GCF_INVALID)); |
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
|
1098 |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1099 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
|
1100 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
|
1101 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
|
1102 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
|
1103 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
|
1104 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
|
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_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
|
1107 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
|
1108 |
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 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
|
1110 /* 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
|
1111 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
|
1112 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
|
1113 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
|
1114 } |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1115 |
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 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
|
1117 |
c001604f4ab3
(svn r17675) -Codechange: move the 'state' changes out of the OnPaint of the newgrf window
rubidium <rubidium@openttd.org>
parents:
13168
diff
changeset
|
1118 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
|
1119 bool has_compatible = false; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1120 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
|
1121 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
|
1122 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
|
1123 } |
16394
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1124 uint16 widget_data; |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1125 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
|
1126 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
|
1127 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
|
1128 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
|
1129 } else { |
16394
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1130 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
|
1131 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
|
1132 } |
16394
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1133 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
|
1134 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
|
1135 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
|
1136 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
|
1137 |
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
|
1138 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
|
1139 } |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1140 |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1141 virtual void OnMouseLoop() |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1142 { |
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
|
1143 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
|
1144 } |
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 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
|
1147 { |
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
|
1148 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
|
1149 |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1150 switch (keycode) { |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1151 case WKC_UP: |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1152 /* scroll up by one */ |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1153 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
|
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_DOWN: |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1157 /* scroll down by one */ |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1158 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
|
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_PAGEUP: |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1162 /* 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
|
1163 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
|
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_PAGEDOWN: |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1167 /* 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
|
1168 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
|
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 case WKC_HOME: |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1172 /* jump to beginning */ |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1173 this->avail_pos = 0; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1174 break; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1175 |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1176 case WKC_END: |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1177 /* jump to end */ |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1178 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
|
1179 break; |
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 default: { |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1182 /* Handle editbox input */ |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1183 EventState state = ES_NOT_HANDLED; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1184 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
|
1185 this->OnOSKInput(SNGRFS_FILTER); |
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 return state; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1188 } |
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 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
|
1192 if (this->avail_pos >= 0) { |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1193 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
|
1194 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
|
1195 this->InvalidateData(0); |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1196 } |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1197 |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1198 return ES_HANDLED; |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1199 } |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1200 |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1201 virtual void OnOSKInput(int wid) |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1202 { |
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
|
1203 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
|
1204 |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1205 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
|
1206 this->avails.ForceRebuild(); |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1207 this->InvalidateData(0); |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1208 } |
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1209 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1210 private: |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1211 /** 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
|
1212 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
|
1213 { |
16614
1111794047a4
(svn r21344) -Feature [FS#4214]: Natural sorting of strings using ICU.
terkhen <terkhen@openttd.org>
parents:
16601
diff
changeset
|
1214 int i = strnatcmp((*a)->GetName(), (*b)->GetName()); // Sort by name (natural sorting). |
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
|
1215 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
|
1216 |
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
|
1217 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
|
1218 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
|
1219 |
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
|
1220 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
|
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 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1223 /** 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
|
1224 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
|
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 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
|
1227 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
|
1228 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
|
1229 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
|
1230 } |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1231 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1232 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
|
1233 { |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1234 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
|
1235 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1236 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
|
1237 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1238 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
|
1239 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
|
1240 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
|
1241 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
|
1242 |
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 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
|
1244 *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
|
1245 } else { |
17077
5a60038ce980
(svn r21814) -Fix/Add: Check GRF version from action 8, and disallow usage of GRFs with versions above 7.
frosch <frosch@openttd.org>
parents:
16614
diff
changeset
|
1246 const GRFConfig *best = FindGRFConfig(c->ident.grfid, HasBit(c->flags, GCF_INVALID) ? FGCM_NEWEST : FGCM_NEWEST_VALID); |
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
|
1247 /* |
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
|
1248 * 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
|
1249 * 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
|
1250 * 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
|
1251 * 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
|
1252 * 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
|
1253 */ |
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
|
1254 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
|
1255 *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
|
1256 } |
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
|
1257 } |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1258 } |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1259 |
15209
eb71d6bac72c
(svn r19838) -Change: Add filter capability to the availables list.
alberth <alberth@openttd.org>
parents:
15208
diff
changeset
|
1260 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
|
1261 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
|
1262 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
|
1263 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
|
1264 |
15212
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
1265 if (this->avail_sel != NULL) { |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
1266 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
|
1267 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
|
1268 } |
a4e976b89e90
(svn r19841) -Feature: Setup NewGRFs from a single window.
alberth <alberth@openttd.org>
parents:
15211
diff
changeset
|
1269 |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1270 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
|
1271 } |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1272 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1273 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1274 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
|
1275 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
|
1276 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1277 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
|
1278 &NameSorter, |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1279 }; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1280 |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1281 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
|
1282 &TagNameFilter, |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1283 }; |
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1284 |
15620
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
1285 /** |
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
1286 * 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
|
1287 * 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
|
1288 * - 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
|
1289 * - 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
|
1290 */ |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1291 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
|
1292 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
|
1293 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
|
1294 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
|
1295 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
|
1296 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
|
1297 |
7be3e18b9c57
(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 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
|
1299 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
|
1300 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
|
1301 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
|
1302 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1303 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
|
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 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
|
1306 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
|
1307 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
|
1308 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1309 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
|
1310 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
|
1311 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
|
1312 |
67f16153e351
(svn r21108) -Add: Copy the 'editable' flag of the newgrf window to its layout widget.
alberth <alberth@openttd.org>
parents:
16286
diff
changeset
|
1313 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
|
1314 } |
7be3e18b9c57
(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 |
7be3e18b9c57
(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 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
|
1317 { |
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
|
1318 /* 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
|
1319 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
|
1320 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
|
1321 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
|
1322 |
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
|
1323 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
|
1324 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
|
1325 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
|
1326 |
7be3e18b9c57
(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 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
|
1328 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
|
1329 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
|
1330 |
7be3e18b9c57
(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 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
|
1332 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
|
1333 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
|
1334 |
7be3e18b9c57
(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 /* 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
|
1336 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
|
1337 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
|
1338 |
7be3e18b9c57
(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 /* 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
|
1340 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
|
1341 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
|
1342 |
7be3e18b9c57
(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->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
|
1344 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
|
1345 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
|
1346 |
7be3e18b9c57
(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 /* 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
|
1348 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
|
1349 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
|
1350 |
7be3e18b9c57
(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 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
|
1352 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
|
1353 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
|
1354 } |
7be3e18b9c57
(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 |
7be3e18b9c57
(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 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
|
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 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
|
1359 |
7be3e18b9c57
(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_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
|
1361 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
|
1362 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
|
1363 |
7be3e18b9c57
(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 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
|
1365 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
|
1366 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
|
1367 |
7be3e18b9c57
(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 /* 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
|
1369 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
|
1370 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
|
1371 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
|
1372 |
7be3e18b9c57
(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 /* 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
|
1374 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
|
1375 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
|
1376 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
|
1377 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
|
1378 } 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
|
1379 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
|
1380 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
|
1381 } |
7be3e18b9c57
(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 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
|
1383 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
|
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 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
|
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 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
|
1388 /* 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
|
1389 * 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
|
1390 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
|
1391 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
|
1392 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
|
1393 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
|
1394 |
7be3e18b9c57
(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 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
|
1396 |
7be3e18b9c57
(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 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
|
1398 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
|
1399 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
|
1400 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
|
1401 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
|
1402 |
7be3e18b9c57
(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 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
|
1404 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
|
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 /* 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
|
1407 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
|
1408 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
|
1409 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
|
1410 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
|
1411 } 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
|
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 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
|
1415 } |
7be3e18b9c57
(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 |
7be3e18b9c57
(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 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
|
1418 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
|
1419 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
|
1420 |
7be3e18b9c57
(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 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
|
1422 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
|
1423 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
|
1424 } 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
|
1425 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
|
1426 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
|
1427 } |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1428 } 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
|
1429 /* 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
|
1430 * 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
|
1431 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
|
1432 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
|
1433 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
|
1434 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
|
1435 |
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
|
1436 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
|
1437 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
|
1438 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
|
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 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
|
1441 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
|
1442 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
|
1443 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1444 /* 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
|
1445 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
|
1446 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
|
1447 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
|
1448 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
|
1449 |
7be3e18b9c57
(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 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
|
1451 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
|
1452 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
|
1453 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
|
1454 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
|
1455 } 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
|
1456 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
|
1457 } |
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
|
1458 } 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
|
1459 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
|
1460 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
|
1461 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
|
1462 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
|
1463 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
|
1464 } 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
|
1465 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
|
1466 } |
b7cc33056746
(svn r21109) -Add: Don't display available newgrfs when the newgrf list is not editable.
alberth <alberth@openttd.org>
parents:
16392
diff
changeset
|
1467 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
|
1468 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
|
1469 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
|
1470 } |
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 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
|
1472 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
|
1473 } |
7be3e18b9c57
(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 } |
7be3e18b9c57
(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 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
|
1478 { |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1479 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
|
1480 |
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
|
1481 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
|
1482 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
|
1483 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
|
1484 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
|
1485 } |
7be3e18b9c57
(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 |
7be3e18b9c57
(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 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
|
1488 { |
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
|
1489 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
|
1490 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
|
1491 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
|
1492 } |
7be3e18b9c57
(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 }; |
7be3e18b9c57
(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 |
7be3e18b9c57
(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 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
|
1496 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
|
1497 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
|
1498 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
|
1499 |
7be3e18b9c57
(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 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
|
1501 /* 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
|
1502 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
|
1503 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
|
1504 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
|
1505 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
|
1506 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
|
1507 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
|
1508 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
|
1509 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
|
1510 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
|
1511 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
|
1512 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
|
1513 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
|
1514 |
7be3e18b9c57
(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 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
|
1516 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
|
1517 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
|
1518 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
|
1519 /* 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
|
1520 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
|
1521 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
|
1522 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
|
1523 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
|
1524 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
|
1525 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
|
1526 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
|
1527 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
|
1528 /* Buttons. */ |
16394
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1529 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
|
1530 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
|
1531 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
|
1532 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
|
1533 NWidget(NWID_VERTICAL), |
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_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
|
1535 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
|
1536 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
|
1537 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
|
1538 EndContainer(), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1539 EndContainer(), |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1540 |
82aa3e68581d
(svn r21110) -Add: Tidy up the buttons of the active newgrfs list.
alberth <alberth@openttd.org>
parents:
16393
diff
changeset
|
1541 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
|
1542 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
|
1543 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
|
1544 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
|
1545 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
|
1546 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
|
1547 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
|
1548 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
|
1549 }; |
7be3e18b9c57
(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 |
7be3e18b9c57
(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 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
|
1552 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
|
1553 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
|
1554 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
|
1555 /* 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
|
1556 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
|
1557 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
|
1558 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
|
1559 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
|
1560 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
|
1561 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
|
1562 /* 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
|
1563 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
|
1564 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
|
1565 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
|
1566 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
|
1567 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
|
1568 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
|
1569 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
|
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 /* 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
|
1572 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
|
1573 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
|
1574 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
|
1575 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
|
1576 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
|
1577 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
|
1578 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
|
1579 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
|
1580 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
|
1581 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
|
1582 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
|
1583 }; |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1584 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1585 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
|
1586 /* 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
|
1587 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
|
1588 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
|
1589 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
|
1590 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
|
1591 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
|
1592 /* 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
|
1593 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
|
1594 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
|
1595 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
|
1596 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
|
1597 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
|
1598 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
|
1599 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
|
1600 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
|
1601 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
|
1602 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
|
1603 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
|
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 |
7be3e18b9c57
(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 /** 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
|
1607 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
|
1608 { |
7be3e18b9c57
(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 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
|
1610 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1611 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
|
1612 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
|
1613 *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
|
1614 |
7be3e18b9c57
(svn r19845) -Feature: Dynamically switch between 2 and 3 column NewGRF gui for improved user experience.
alberth <alberth@openttd.org>
parents:
15212
diff
changeset
|
1615 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
|
1616 *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
|
1617 |
7be3e18b9c57
(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 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
|
1619 } |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1620 |
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
|
1621 /* 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
|
1622 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
|
1623 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
|
1624 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
|
1625 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
|
1626 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
|
1627 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
|
1628 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
|
1629 /* Resize button. */ |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
1630 NWidget(NWID_HORIZONTAL), |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
1631 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
|
1632 NWidget(WWT_RESIZEBOX, COLOUR_MAUVE), |
e28e566488a9
(svn r19840) -Add: Add 'rescan' functionality to the NewGRF window.
alberth <alberth@openttd.org>
parents:
15209
diff
changeset
|
1633 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
|
1634 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
|
1635 }; |
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
|
1636 |
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
|
1637 /* 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
|
1638 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
|
1639 WDP_CENTER, 300, 263, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5668
diff
changeset
|
1640 WC_GAME_OPTIONS, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13705
diff
changeset
|
1641 WDF_UNCLICK_BUTTONS, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13419
diff
changeset
|
1642 _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
|
1643 ); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1644 |
15620
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
1645 /** |
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
1646 * 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
|
1647 * @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
|
1648 * @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
|
1649 */ |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1650 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
|
1651 { |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1652 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
|
1653 DeleteWindowByClass(WC_GRF_PARAMETERS); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1654 NewGRFWindow *nw = dynamic_cast<NewGRFWindow*>(w); |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1655 |
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
|
1656 GamelogStartAction(GLAT_GRF); |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1657 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
|
1658 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
|
1659 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
|
1660 GamelogStopAction(); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1661 |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1662 /* Show new, updated list */ |
15201
071e920abcfb
(svn r19830) -Codechange: Move variable declarations to their first use.
alberth <alberth@openttd.org>
parents:
15200
diff
changeset
|
1663 GRFConfig *c; |
071e920abcfb
(svn r19830) -Codechange: Move variable declarations to their first use.
alberth <alberth@openttd.org>
parents:
15200
diff
changeset
|
1664 int i = 0; |
15203
2ef926c44a98
(svn r19832) -Codechange: Rename variables list->actives, sel->active_sel.
alberth <alberth@openttd.org>
parents:
15202
diff
changeset
|
1665 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
|
1666 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
|
1667 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
|
1668 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
|
1669 nw->avails.ForceRebuild(); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1670 |
15208
ebff51f3984b
(svn r19837) -Change: Display list of available (non-active) grfs in the NewGRF window.
alberth <alberth@openttd.org>
parents:
15207
diff
changeset
|
1671 w->InvalidateData(); |
15982
62befe1b097c
(svn r20670) -Add: support for action F
rubidium <rubidium@openttd.org>
parents:
15920
diff
changeset
|
1672 |
62befe1b097c
(svn r20670) -Add: support for action F
rubidium <rubidium@openttd.org>
parents:
15920
diff
changeset
|
1673 ReInitAllWindows(); |
62befe1b097c
(svn r20670) -Add: support for action F
rubidium <rubidium@openttd.org>
parents:
15920
diff
changeset
|
1674 DeleteWindowByClass(WC_BUILD_OBJECT); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1675 } |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1676 } |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1677 |
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1678 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1679 |
15620
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
1680 /** |
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
1681 * 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
|
1682 * @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
|
1683 * @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
|
1684 * @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
|
1685 * 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
|
1686 * @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
|
1687 */ |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1688 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
|
1689 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1690 DeleteWindowByClass(WC_GAME_OPTIONS); |
9207
839a532bf0f6
(svn r13073) -Codechange: make classes of the NewGRF windows
peter1138 <peter1138@openttd.org>
parents:
9164
diff
changeset
|
1691 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
|
1692 } |