annotate src/network/network_gui.cpp @ 13695:75560523443c draft

(svn r18220) -Codechange: Reduce number of nested widget dynamic casts.
author alberth <alberth@openttd.org>
date Sun, 22 Nov 2009 13:22:53 +0000
parents c6a83b1d3775
children af90d4bf0785
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1 /* $Id$ */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2
12778
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 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: 8937
diff changeset
10 /** @file network_gui.cpp Implementation of the Network related GUIs. */
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: 8937
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 #ifdef ENABLE_NETWORK
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 "../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
14 #include "../openttd.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"
8140
fb8a05d579da (svn r11702) -Codechange: move all date related stuff to date*.
rubidium <rubidium@openttd.org>
parents: 8131
diff changeset
16 #include "../date_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
17 #include "../fios.h"
9428
ba7cdcf21f4c (svn r13343) -Codechange: reorder/move variable/functions in the network headers so that nothing from the network directory needs to include basically all network headers.
rubidium <rubidium@openttd.org>
parents: 9420
diff changeset
18 #include "network_internal.h"
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
19 #include "network_client.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
20 #include "network_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
21 #include "network_gamelist.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
22 #include "../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
23 #include "network_udp.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
24 #include "../window_func.h"
8224
c45446125bf0 (svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium <rubidium@openttd.org>
parents: 8214
diff changeset
25 #include "../gfx_func.h"
8284
dbb7bfe0e95c (svn r11848) -Codechange: New class-based drop down list functionality. Lists are now dynamically generated, and can include parameters, or be extended however needed.
peter1138 <peter1138@openttd.org>
parents: 8270
diff changeset
26 #include "../widgets/dropdown_func.h"
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
27 #include "../querystring_gui.h"
9274
85a62fb8608f (svn r13140) -Codechange: move the gui-list-sorting out of window_gui.h so window_gui.h only needs to be included in *_gui.cpp.
rubidium <rubidium@openttd.org>
parents: 9273
diff changeset
28 #include "../sortlist_type.h"
10208
39cf8eebfda5 (svn r14422) -Codechange: also reflect the changes of r14421 in the filenames.
rubidium <rubidium@openttd.org>
parents: 10207
diff changeset
29 #include "../company_base.h"
11956
6ec97548e188 (svn r16360) -Codechange: don't use _network_playas as a 'second' _local_company, but only as a storage location for the company you want to join in MP.
rubidium <rubidium@openttd.org>
parents: 11924
diff changeset
30 #include "../company_func.h"
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
31
8264
2495310e220f (svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium <rubidium@openttd.org>
parents: 8254
diff changeset
32 #include "table/strings.h"
2495310e220f (svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium <rubidium@openttd.org>
parents: 8254
diff changeset
33 #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: 8254
diff changeset
34
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
35
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 5916
diff changeset
36 static void ShowNetworkStartServerWindow();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
37 static void ShowNetworkLobbyWindow(NetworkGameList *ngl);
11223
4928ebb36453 (svn r15576) -Codechange: rename SwitchModes to SwitchMode and don't hardcode the values for that enum.
yexo <yexo@openttd.org>
parents: 11218
diff changeset
38 extern void SwitchToMode(SwitchMode new_mode);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
39
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
40 static const StringID _connection_types_dropdown[] = {
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
41 STR_NETWORK_START_SERVER_LAN_INTERNET,
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
42 STR_NETWORK_START_SERVER_INTERNET_ADVERTISE,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
43 INVALID_STRING_ID
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
44 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
45
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
46 static const StringID _lan_internet_types_dropdown[] = {
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
47 STR_NETWORK_SERVER_LIST_LAN,
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
48 STR_NETWORK_SERVER_LIST_INTERNET,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
49 INVALID_STRING_ID
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
50 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
51
6796
fe8894bfa8ab (svn r10035) -Change: simplified network language string sorting
glx <glx@openttd.org>
parents: 6793
diff changeset
52 static StringID _language_dropdown[NETLANG_COUNT + 1] = {STR_NULL};
6793
30657c4af0fb (svn r10032) -Add: sort the strings in server language dropdown
glx <glx@openttd.org>
parents: 6780
diff changeset
53
7321
66202e2e042a (svn r10684) -Codechange: some more coding style related changes. Primarily moving { to a new line.
rubidium <rubidium@openttd.org>
parents: 7221
diff changeset
54 void SortNetworkLanguages()
66202e2e042a (svn r10684) -Codechange: some more coding style related changes. Primarily moving { to a new line.
rubidium <rubidium@openttd.org>
parents: 7221
diff changeset
55 {
6796
fe8894bfa8ab (svn r10035) -Change: simplified network language string sorting
glx <glx@openttd.org>
parents: 6793
diff changeset
56 /* Init the strings */
fe8894bfa8ab (svn r10035) -Change: simplified network language string sorting
glx <glx@openttd.org>
parents: 6793
diff changeset
57 if (_language_dropdown[0] == STR_NULL) {
fe8894bfa8ab (svn r10035) -Change: simplified network language string sorting
glx <glx@openttd.org>
parents: 6793
diff changeset
58 for (int i = 0; i < NETLANG_COUNT; i++) _language_dropdown[i] = STR_NETWORK_LANG_ANY + i;
fe8894bfa8ab (svn r10035) -Change: simplified network language string sorting
glx <glx@openttd.org>
parents: 6793
diff changeset
59 _language_dropdown[NETLANG_COUNT] = INVALID_STRING_ID;
fe8894bfa8ab (svn r10035) -Change: simplified network language string sorting
glx <glx@openttd.org>
parents: 6793
diff changeset
60 }
6793
30657c4af0fb (svn r10032) -Add: sort the strings in server language dropdown
glx <glx@openttd.org>
parents: 6780
diff changeset
61
6796
fe8894bfa8ab (svn r10035) -Change: simplified network language string sorting
glx <glx@openttd.org>
parents: 6793
diff changeset
62 /* Sort the strings (we don't move 'any' and the 'invalid' one) */
13028
30e0feabeff8 (svn r17526) -Codechange: use QSortT instead of qsort for sorting the language list in the network GUI
rubidium <rubidium@openttd.org>
parents: 12878
diff changeset
63 QSortT(_language_dropdown, NETLANG_COUNT - 1, &StringIDSorter);
6793
30657c4af0fb (svn r10032) -Add: sort the strings in server language dropdown
glx <glx@openttd.org>
parents: 6780
diff changeset
64 }
6780
05ca25dd9fa4 (svn r10017) -Add (FS#790): more languages flags for servers
glx <glx@openttd.org>
parents: 6531
diff changeset
65
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
66 /** Update the network new window because a new server is
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
67 * found on the network.
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
68 * @param unselect unselect the currently selected item */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
69 void UpdateNetworkGameWindow(bool unselect)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
70 {
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: 10771
diff changeset
71 InvalidateWindowData(WC_NETWORK_WINDOW, 0, unselect ? 1 : 0);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
72 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
73
7960
d91d1077e1ce (svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7959
diff changeset
74 /** Enum for NetworkGameWindow, referring to _network_game_window_widgets */
d91d1077e1ce (svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7959
diff changeset
75 enum NetworkGameWindowWidgets {
8931
844599e493e6 (svn r12701) -Codechange: do not explicitly number a widget enum because that causes a big diff when adding something.
rubidium <rubidium@openttd.org>
parents: 8738
diff changeset
76 NGWW_CLOSE, ///< Close 'X' button
844599e493e6 (svn r12701) -Codechange: do not explicitly number a widget enum because that causes a big diff when adding something.
rubidium <rubidium@openttd.org>
parents: 8738
diff changeset
77 NGWW_CAPTION, ///< Caption of the window
11374
f58902ec450d (svn r15724) -Codechange: some widget documentation/fixing of enumified constant names (Alberth)
rubidium <rubidium@openttd.org>
parents: 11373
diff changeset
78 NGWW_MAIN, ///< Main panel
7960
d91d1077e1ce (svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7959
diff changeset
79
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
80 NGWW_CONNECTION, ///< Label in front of connection droplist
8931
844599e493e6 (svn r12701) -Codechange: do not explicitly number a widget enum because that causes a big diff when adding something.
rubidium <rubidium@openttd.org>
parents: 8738
diff changeset
81 NGWW_CONN_BTN, ///< 'Connection' droplist button
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
82 NGWW_CLIENT_LABEL, ///< Label in front of client name edit box
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10180
diff changeset
83 NGWW_CLIENT, ///< Panel with editbox to set client name
8931
844599e493e6 (svn r12701) -Codechange: do not explicitly number a widget enum because that causes a big diff when adding something.
rubidium <rubidium@openttd.org>
parents: 8738
diff changeset
84
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
85 NGWW_HEADER, ///< Header container of the matrix
8931
844599e493e6 (svn r12701) -Codechange: do not explicitly number a widget enum because that causes a big diff when adding something.
rubidium <rubidium@openttd.org>
parents: 8738
diff changeset
86 NGWW_NAME, ///< 'Name' button
7960
d91d1077e1ce (svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7959
diff changeset
87 NGWW_CLIENTS, ///< 'Clients' button
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
88 NGWW_MAPSIZE, ///< 'Map size' button
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
89 NGWW_DATE, ///< 'Date' button
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
90 NGWW_YEARS, ///< 'Years' button
7960
d91d1077e1ce (svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7959
diff changeset
91 NGWW_INFO, ///< Third button in the game list panel
d91d1077e1ce (svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7959
diff changeset
92
8931
844599e493e6 (svn r12701) -Codechange: do not explicitly number a widget enum because that causes a big diff when adding something.
rubidium <rubidium@openttd.org>
parents: 8738
diff changeset
93 NGWW_MATRIX, ///< Panel with list of games
844599e493e6 (svn r12701) -Codechange: do not explicitly number a widget enum because that causes a big diff when adding something.
rubidium <rubidium@openttd.org>
parents: 8738
diff changeset
94 NGWW_SCROLLBAR, ///< Scrollbar of matrix
7960
d91d1077e1ce (svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7959
diff changeset
95
8937
f031c91c0cdc (svn r12709) -Feature: show the last joined server. Heavily based on a patch by Yexo.
rubidium <rubidium@openttd.org>
parents: 8931
diff changeset
96 NGWW_LASTJOINED_LABEL, ///< Label "Last joined server:"
f031c91c0cdc (svn r12709) -Feature: show the last joined server. Heavily based on a patch by Yexo.
rubidium <rubidium@openttd.org>
parents: 8931
diff changeset
97 NGWW_LASTJOINED, ///< Info about the last joined server
f031c91c0cdc (svn r12709) -Feature: show the last joined server. Heavily based on a patch by Yexo.
rubidium <rubidium@openttd.org>
parents: 8931
diff changeset
98
8931
844599e493e6 (svn r12701) -Codechange: do not explicitly number a widget enum because that causes a big diff when adding something.
rubidium <rubidium@openttd.org>
parents: 8738
diff changeset
99 NGWW_DETAILS, ///< Panel with game details
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
100 NGWW_DETAILS_SPACER, ///< Spacer for game actual details
8931
844599e493e6 (svn r12701) -Codechange: do not explicitly number a widget enum because that causes a big diff when adding something.
rubidium <rubidium@openttd.org>
parents: 8738
diff changeset
101 NGWW_JOIN, ///< 'Join game' button
844599e493e6 (svn r12701) -Codechange: do not explicitly number a widget enum because that causes a big diff when adding something.
rubidium <rubidium@openttd.org>
parents: 8738
diff changeset
102 NGWW_REFRESH, ///< 'Refresh server' button
844599e493e6 (svn r12701) -Codechange: do not explicitly number a widget enum because that causes a big diff when adding something.
rubidium <rubidium@openttd.org>
parents: 8738
diff changeset
103 NGWW_NEWGRF, ///< 'NewGRF Settings' button
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
104 NGWW_NEWGRF_SEL, ///< Selection 'widget' to hide the NewGRF settings
7960
d91d1077e1ce (svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7959
diff changeset
105
8931
844599e493e6 (svn r12701) -Codechange: do not explicitly number a widget enum because that causes a big diff when adding something.
rubidium <rubidium@openttd.org>
parents: 8738
diff changeset
106 NGWW_FIND, ///< 'Find server' button
7960
d91d1077e1ce (svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7959
diff changeset
107 NGWW_ADD, ///< 'Add server' button
d91d1077e1ce (svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7959
diff changeset
108 NGWW_START, ///< 'Start server' button
d91d1077e1ce (svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7959
diff changeset
109 NGWW_CANCEL, ///< 'Cancel' button
11374
f58902ec450d (svn r15724) -Codechange: some widget documentation/fixing of enumified constant names (Alberth)
rubidium <rubidium@openttd.org>
parents: 11373
diff changeset
110
f58902ec450d (svn r15724) -Codechange: some widget documentation/fixing of enumified constant names (Alberth)
rubidium <rubidium@openttd.org>
parents: 11373
diff changeset
111 NGWW_RESIZE, ///< Resize button
7960
d91d1077e1ce (svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7959
diff changeset
112 };
d91d1077e1ce (svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7959
diff changeset
113
9182
d3a153aa328d (svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium <rubidium@openttd.org>
parents: 9181
diff changeset
114 typedef GUIList<NetworkGameList*> GUIGameServerList;
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
115 typedef uint16 ServerListPosition;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
116 static const ServerListPosition SLP_INVALID = 0xFFFF;
9182
d3a153aa328d (svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium <rubidium@openttd.org>
parents: 9181
diff changeset
117
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
118 /** Full blown container to make it behave exactly as we want :) */
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
119 class NWidgetServerListHeader : public NWidgetContainer {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
120 static const uint MINIMUM_NAME_WIDTH_BEFORE_NEW_HEADER = 150; ///< Minimum width before adding a new header
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
121 bool visible[6]; ///< The visible headers
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
122 public:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
123 NWidgetServerListHeader() : NWidgetContainer(NWID_HORIZONTAL)
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
124 {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
125 NWidgetLeaf *leaf = new NWidgetLeaf(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_NAME, STR_NETWORK_SERVER_LIST_GAME_NAME, STR_NETWORK_SERVER_LIST_GAME_NAME_TOOLTIP);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
126 leaf->SetResize(1, 0);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
127 leaf->SetFill(true, false);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
128 this->Add(leaf);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
129
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
130 this->Add(new NWidgetLeaf(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_CLIENTS, STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION, STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION_TOOLTIP));
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
131 this->Add(new NWidgetLeaf(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_MAPSIZE, STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION, STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION_TOOLTIP));
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
132 this->Add(new NWidgetLeaf(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_DATE, STR_NETWORK_SERVER_LIST_DATE_CAPTION, STR_NETWORK_SERVER_LIST_DATE_CAPTION_TOOLTIP));
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
133 this->Add(new NWidgetLeaf(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_YEARS, STR_NETWORK_SERVER_LIST_YEARS_CAPTION, STR_NETWORK_SERVER_LIST_YEARS_CAPTION_TOOLTIP));
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
134
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
135 leaf = new NWidgetLeaf(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_INFO, STR_EMPTY, STR_NETWORK_SERVER_LIST_INFO_ICONS_TOOLTIP);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
136 leaf->SetMinimalSize(40, 12);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
137 leaf->SetFill(false, true);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
138 this->Add(leaf);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
139
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
140 /* First and last are always visible, the rest is implicitly zeroed */
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
141 this->visible[0] = true;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
142 *lastof(this->visible) = true;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
143 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
144
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
145 void SetupSmallestSize(Window *w, bool init_array)
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
146 {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
147 /* Oh yeah, we ought to be findable! */
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
148 w->nested_array[NGWW_HEADER] = this;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
149
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
150 this->smallest_x = this->head->smallest_x + this->tail->smallest_x; // First and last are always shown, rest not
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
151 this->smallest_y = 0; // Biggest child.
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
152 this->fill_x = true;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
153 this->fill_y = false;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
154 this->resize_x = 1; // We only resize in this direction
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
155 this->resize_y = 0; // We never resize in this direction
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
156
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
157 /* First initialise some variables... */
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
158 for (NWidgetBase *child_wid = this->head; child_wid != NULL; child_wid = child_wid->next) {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
159 child_wid->SetupSmallestSize(w, init_array);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
160 this->smallest_y = max(this->smallest_y, child_wid->smallest_y + child_wid->padding_top + child_wid->padding_bottom);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
161 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
162
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
163 /* ... then in a second pass make sure the 'current' sizes are set. Won't change for most widgets. */
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
164 for (NWidgetBase *child_wid = this->head; child_wid != NULL; child_wid = child_wid->next) {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
165 child_wid->current_x = child_wid->smallest_x;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
166 child_wid->current_y = this->smallest_y;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
167 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
168 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
169
13676
e9a201c03e65 (svn r18201) -Codechange (r18092): No need anymore for initializing nested widgets for Widget* arrays.
alberth <alberth@openttd.org>
parents: 13651
diff changeset
170 void AssignSizePosition(SizingType sizing, uint x, uint y, uint given_width, uint given_height, bool rtl)
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
171 {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
172 assert(given_width >= this->smallest_x && given_height >= this->smallest_y);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
173
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
174 this->pos_x = x;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
175 this->pos_y = y;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
176 this->current_x = given_width;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
177 this->current_y = given_height;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
178
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
179 given_width -= this->tail->smallest_x;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
180 NWidgetBase *child_wid = this->head->next;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
181 /* The first and last widget are always visible, determine which other should be visible */
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
182 for (uint i = 1; i < lengthof(this->visible) - 1; i++) {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
183 if (given_width - child_wid->smallest_x > MINIMUM_NAME_WIDTH_BEFORE_NEW_HEADER && this->visible[i - 1]) {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
184 this->visible[i] = true;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
185 given_width -= child_wid->smallest_x;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
186 } else {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
187 this->visible[i] = false;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
188 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
189 child_wid = child_wid->next;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
190 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
191
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
192 /* All remaining space goes to the first (name) widget */
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
193 this->head->current_x = given_width;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
194
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
195 /* Now assign the widgets to their rightful place */
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
196 uint position = 0; // Place to put next child relative to origin of the container.
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
197 uint i = rtl ? lengthof(this->visible) - 1 : 0;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
198 child_wid = rtl ? this->tail : this->head;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
199 while (child_wid != NULL) {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
200 if (this->visible[i]) {
13676
e9a201c03e65 (svn r18201) -Codechange (r18092): No need anymore for initializing nested widgets for Widget* arrays.
alberth <alberth@openttd.org>
parents: 13651
diff changeset
201 child_wid->AssignSizePosition(sizing, x + position, y, child_wid->current_x, this->current_y, rtl);
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
202 position += child_wid->current_x;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
203 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
204
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
205 child_wid = rtl ? child_wid->prev : child_wid->next;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
206 i += rtl ? -1 : 1;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
207 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
208 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
209
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
210 /* virtual */ void Draw(const Window *w)
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
211 {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
212 int i = 0;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
213 for (NWidgetBase *child_wid = this->head; child_wid != NULL; child_wid = child_wid->next) {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
214 if (!this->visible[i++]) continue;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
215
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
216 child_wid->Draw(w);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
217 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
218 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
219
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
220 /* virtual */ NWidgetCore *GetWidgetFromPos(int x, int y)
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
221 {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
222 if (!IsInsideBS(x, this->pos_x, this->current_x) || !IsInsideBS(y, this->pos_y, this->current_y)) return NULL;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
223
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
224 int i = 0;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
225 for (NWidgetBase *child_wid = this->head; child_wid != NULL; child_wid = child_wid->next) {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
226 if (!this->visible[i++]) continue;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
227 NWidgetCore *nwid = child_wid->GetWidgetFromPos(x, y);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
228 if (nwid != NULL) return nwid;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
229 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
230 return NULL;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
231 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
232
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
233 /**
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
234 * Checks whether the given widget is actually visible.
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
235 * @param widget the widget to check for visibility
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
236 * @return true iff the widget is visible.
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
237 */
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
238 bool IsWidgetVisible(NetworkGameWindowWidgets widget) const
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
239 {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
240 assert((uint)(widget - NGWW_NAME) < lengthof(this->visible));
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
241 return this->visible[widget - NGWW_NAME];
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
242 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
243 };
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
244
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
245 class NetworkGameWindow : public QueryStringBaseWindow {
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
246 protected:
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
247 /* Runtime saved values */
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
248 static Listing last_sorting;
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
249
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
250 /* Constants for sorting servers */
11376
b9b2391afd1a (svn r15726) -Codechange: unify coding style for const pointers
smatz <smatz@openttd.org>
parents: 11374
diff changeset
251 static GUIGameServerList::SortFunction * const sorter_funcs[];
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
252
11682
2b28014c1684 (svn r16065) -Fix: don't readd (and resolve) the last joined server each time the window gets repainted
rubidium <rubidium@openttd.org>
parents: 11612
diff changeset
253 byte field; ///< selected text-field
2b28014c1684 (svn r16065) -Fix: don't readd (and resolve) the last joined server each time the window gets repainted
rubidium <rubidium@openttd.org>
parents: 11612
diff changeset
254 NetworkGameList *server; ///< selected server
2b28014c1684 (svn r16065) -Fix: don't readd (and resolve) the last joined server each time the window gets repainted
rubidium <rubidium@openttd.org>
parents: 11612
diff changeset
255 NetworkGameList *last_joined; ///< the last joined server
2b28014c1684 (svn r16065) -Fix: don't readd (and resolve) the last joined server each time the window gets repainted
rubidium <rubidium@openttd.org>
parents: 11612
diff changeset
256 GUIGameServerList servers; ///< list with game servers.
2b28014c1684 (svn r16065) -Fix: don't readd (and resolve) the last joined server each time the window gets repainted
rubidium <rubidium@openttd.org>
parents: 11612
diff changeset
257 ServerListPosition list_pos; ///< position of the selected server
8937
f031c91c0cdc (svn r12709) -Feature: show the last joined server. Heavily based on a patch by Yexo.
rubidium <rubidium@openttd.org>
parents: 8931
diff changeset
258
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
259 /**
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
260 * (Re)build the network game list as its amount has changed because
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
261 * an item has been added or deleted for example
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
262 */
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
263 void BuildNetworkGameList()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
264 {
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
265 if (!this->servers.NeedRebuild()) return;
8937
f031c91c0cdc (svn r12709) -Feature: show the last joined server. Heavily based on a patch by Yexo.
rubidium <rubidium@openttd.org>
parents: 8931
diff changeset
266
9365
5a3d3513930c (svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents: 9354
diff changeset
267 /* Create temporary array of games to use for listing */
5a3d3513930c (svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents: 9354
diff changeset
268 this->servers.Clear();
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
269
9365
5a3d3513930c (svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents: 9354
diff changeset
270 for (NetworkGameList *ngl = _network_game_list; ngl != NULL; ngl = ngl->next) {
5a3d3513930c (svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents: 9354
diff changeset
271 *this->servers.Append() = ngl;
5a3d3513930c (svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents: 9354
diff changeset
272 }
7960
d91d1077e1ce (svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7959
diff changeset
273
9365
5a3d3513930c (svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents: 9354
diff changeset
274 this->servers.Compact();
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
275 this->servers.RebuildDone();
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
276 this->vscroll.SetCount(this->servers.Length());
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
277 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
278
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
279 /** Sort servers by name. */
10647
592ae9307430 (svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents: 10641
diff changeset
280 static int CDECL NGameNameSorter(NetworkGameList * const *a, NetworkGameList * const *b)
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
281 {
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
282 return strcasecmp((*a)->info.server_name, (*b)->info.server_name);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
283 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
284
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
285 /** Sort servers by the amount of clients online on a
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
286 * server. If the two servers have the same amount, the one with the
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
287 * higher maximum is preferred. */
10647
592ae9307430 (svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents: 10641
diff changeset
288 static int CDECL NGameClientSorter(NetworkGameList * const *a, NetworkGameList * const *b)
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
289 {
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
290 /* Reverse as per default we are interested in most-clients first */
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
291 int r = (*a)->info.clients_on - (*b)->info.clients_on;
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
292
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
293 if (r == 0) r = (*a)->info.clients_max - (*b)->info.clients_max;
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
294 if (r == 0) r = NGameNameSorter(a, b);
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
295
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
296 return r;
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
297 }
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
298
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
299 /** Sort servers by map size */
10647
592ae9307430 (svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents: 10641
diff changeset
300 static int CDECL NGameMapSizeSorter(NetworkGameList * const *a, NetworkGameList * const *b)
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
301 {
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
302 /* Sort by the area of the map. */
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
303 int r = ((*a)->info.map_height) * ((*a)->info.map_width) - ((*b)->info.map_height) * ((*b)->info.map_width);
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
304
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
305 if (r == 0) r = (*a)->info.map_width - (*b)->info.map_width;
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
306 return (r != 0) ? r : NGameClientSorter(a, b);
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
307 }
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
308
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
309 /** Sort servers by current date */
10647
592ae9307430 (svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents: 10641
diff changeset
310 static int CDECL NGameDateSorter(NetworkGameList * const *a, NetworkGameList * const *b)
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
311 {
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
312 int r = (*a)->info.game_date - (*b)->info.game_date;
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
313 return (r != 0) ? r : NGameClientSorter(a, b);
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
314 }
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
315
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
316 /** Sort servers by the number of days the game is running */
10647
592ae9307430 (svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents: 10641
diff changeset
317 static int CDECL NGameYearsSorter(NetworkGameList * const *a, NetworkGameList * const *b)
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
318 {
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
319 int r = (*a)->info.game_date - (*a)->info.start_date - (*b)->info.game_date + (*b)->info.start_date;
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
320 return (r != 0) ? r : NGameDateSorter(a, b);
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
321 }
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
322
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
323 /** Sort servers by joinability. If both servers are the
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
324 * same, prefer the non-passworded server first. */
10647
592ae9307430 (svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents: 10641
diff changeset
325 static int CDECL NGameAllowedSorter(NetworkGameList * const *a, NetworkGameList * const *b)
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
326 {
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
327 /* The servers we do not know anything about (the ones that did not reply) should be at the bottom) */
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
328 int r = StrEmpty((*a)->info.server_revision) - StrEmpty((*b)->info.server_revision);
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
329
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
330 /* Reverse default as we are interested in version-compatible clients first */
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
331 if (r == 0) r = (*b)->info.version_compatible - (*a)->info.version_compatible;
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
332 /* The version-compatible ones are then sorted with NewGRF compatible first, incompatible last */
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
333 if (r == 0) r = (*b)->info.compatible - (*a)->info.compatible;
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
334 /* Passworded servers should be below unpassworded servers */
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
335 if (r == 0) r = (*a)->info.use_password - (*b)->info.use_password;
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
336 /* Finally sort on the name of the server */
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
337 if (r == 0) r = NGameNameSorter(a, b);
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
338
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
339 return r;
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
340 }
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
341
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
342 /** Sort the server list */
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
343 void SortNetworkGameList()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
344 {
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
345 if (!this->servers.Sort()) 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
346
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
347 /* After sorting ngl->sort_list contains the sorted items. Put these back
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
348 * into the original list. Basically nothing has changed, we are only
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
349 * shuffling the ->next pointers. While iterating, look for the
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
350 * currently selected server and set list_pos to its position */
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
351 this->list_pos = SLP_INVALID;
9365
5a3d3513930c (svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents: 9354
diff changeset
352 _network_game_list = this->servers[0];
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
353 NetworkGameList *item = _network_game_list;
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
354 if (item == this->server) this->list_pos = 0;
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
355 for (uint i = 1; i != this->servers.Length(); i++) {
9365
5a3d3513930c (svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents: 9354
diff changeset
356 item->next = this->servers[i];
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
357 item = item->next;
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
358 if (item == this->server) this->list_pos = i;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
359 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
360 item->next = NULL;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
361 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
362
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
363 /**
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
364 * Draw a single server line.
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
365 * @param cur_item the server to draw.
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
366 * @param y from where to draw?
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
367 * @param highlight does the line need to be highlighted?
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
368 */
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
369 void DrawServerLine(const NetworkGameList *cur_item, uint y, bool highlight) const
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
370 {
13695
75560523443c (svn r18220) -Codechange: Reduce number of nested widget dynamic casts.
alberth <alberth@openttd.org>
parents: 13694
diff changeset
371 const NWidgetBase *nwi_name = this->GetWidget<NWidgetBase>(NGWW_NAME);
75560523443c (svn r18220) -Codechange: Reduce number of nested widget dynamic casts.
alberth <alberth@openttd.org>
parents: 13694
diff changeset
372 const NWidgetBase *nwi_info = this->GetWidget<NWidgetBase>(NGWW_INFO);
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
373
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
374 /* show highlighted item with a different colour */
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
375 if (highlight) GfxFillRect(nwi_name->pos_x + 1, y - 2, nwi_info->pos_x + nwi_info->current_x - 2, y + FONT_HEIGHT_NORMAL - 1, 10);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
376
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
377 DrawString(nwi_name->pos_x + WD_FRAMERECT_LEFT, nwi_name->pos_x + nwi_name->current_x - WD_FRAMERECT_RIGHT, y, cur_item->info.server_name, TC_BLACK);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
378
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
379 /* only draw details if the server is online */
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
380 if (cur_item->online) {
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
381 const NWidgetServerListHeader *nwi_header = this->GetWidget<NWidgetServerListHeader>(NGWW_HEADER);
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
382
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
383 if (nwi_header->IsWidgetVisible(NGWW_CLIENTS)) {
13695
75560523443c (svn r18220) -Codechange: Reduce number of nested widget dynamic casts.
alberth <alberth@openttd.org>
parents: 13694
diff changeset
384 const NWidgetBase *nwi_clients = this->GetWidget<NWidgetBase>(NGWW_CLIENTS);
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
385 SetDParam(0, cur_item->info.clients_on);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
386 SetDParam(1, cur_item->info.clients_max);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
387 SetDParam(2, cur_item->info.companies_on);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
388 SetDParam(3, cur_item->info.companies_max);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
389 DrawString(nwi_clients->pos_x, nwi_clients->pos_x + nwi_clients->current_x - 1, y, STR_NETWORK_SERVER_LIST_GENERAL_ONLINE, TC_FROMSTRING, SA_CENTER);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
390 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
391
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
392 if (nwi_header->IsWidgetVisible(NGWW_MAPSIZE)) {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
393 /* map size */
13695
75560523443c (svn r18220) -Codechange: Reduce number of nested widget dynamic casts.
alberth <alberth@openttd.org>
parents: 13694
diff changeset
394 const NWidgetBase *nwi_mapsize = this->GetWidget<NWidgetBase>(NGWW_MAPSIZE);
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
395 SetDParam(0, cur_item->info.map_width);
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
396 SetDParam(1, cur_item->info.map_height);
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
397 DrawString(nwi_mapsize->pos_x, nwi_mapsize->pos_x + nwi_mapsize->current_x - 1, y, STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT, TC_FROMSTRING, SA_CENTER);
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
398 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
399
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
400 if (nwi_header->IsWidgetVisible(NGWW_DATE)) {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
401 /* current date */
13695
75560523443c (svn r18220) -Codechange: Reduce number of nested widget dynamic casts.
alberth <alberth@openttd.org>
parents: 13694
diff changeset
402 const NWidgetBase *nwi_date = this->GetWidget<NWidgetBase>(NGWW_DATE);
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
403 YearMonthDay ymd;
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
404 ConvertDateToYMD(cur_item->info.game_date, &ymd);
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
405 SetDParam(0, ymd.year);
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
406 DrawString(nwi_date->pos_x, nwi_date->pos_x + nwi_date->current_x - 1, y, STR_JUST_INT, TC_BLACK, SA_CENTER);
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
407 }
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
408
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
409 if (nwi_header->IsWidgetVisible(NGWW_YEARS)) {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
410 /* number of years the game is running */
13695
75560523443c (svn r18220) -Codechange: Reduce number of nested widget dynamic casts.
alberth <alberth@openttd.org>
parents: 13694
diff changeset
411 const NWidgetBase *nwi_years = this->GetWidget<NWidgetBase>(NGWW_YEARS);
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
412 YearMonthDay ymd_cur, ymd_start;
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
413 ConvertDateToYMD(cur_item->info.game_date, &ymd_cur);
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
414 ConvertDateToYMD(cur_item->info.start_date, &ymd_start);
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
415 SetDParam(0, ymd_cur.year - ymd_start.year);
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
416 DrawString(nwi_years->pos_x, nwi_years->pos_x + nwi_years->current_x - 1, y, STR_JUST_INT, TC_BLACK, SA_CENTER);
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
417 }
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
418
13693
a41d4d5669ba (svn r18218) -Codechange: make a few network windows big font aware
rubidium <rubidium@openttd.org>
parents: 13688
diff changeset
419 /* Align the sprites */
a41d4d5669ba (svn r18218) -Codechange: make a few network windows big font aware
rubidium <rubidium@openttd.org>
parents: 13688
diff changeset
420 y += (FONT_HEIGHT_NORMAL - 10) / 2;
a41d4d5669ba (svn r18218) -Codechange: make a few network windows big font aware
rubidium <rubidium@openttd.org>
parents: 13688
diff changeset
421
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
422 /* draw a lock if the server is password protected */
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
423 if (cur_item->info.use_password) DrawSprite(SPR_LOCK, PAL_NONE, nwi_info->pos_x + 5, y - 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
424
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
425 /* draw red or green icon, depending on compatibility with server */
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
426 DrawSprite(SPR_BLOT, (cur_item->info.compatible ? PALETTE_TO_GREEN : (cur_item->info.version_compatible ? PALETTE_TO_YELLOW : PALETTE_TO_RED)), nwi_info->pos_x + 15, y);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
427
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
428 /* draw flag according to server language */
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
429 DrawSprite(SPR_FLAGS_BASE + cur_item->info.server_lang, PAL_NONE, nwi_info->pos_x + 25, y);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
430 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
431 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
432
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
433 /**
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
434 * Scroll the list up or down to the currently selected server.
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
435 * If the server is below the currently displayed servers, it will
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
436 * scroll down an amount so that the server appears at the bottom.
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
437 * If the server is above the currently displayed servers, it will
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
438 * scroll up so that the server appears at the top.
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
439 */
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
440 void ScrollToSelectedServer()
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
441 {
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
442 if (this->list_pos == SLP_INVALID) return; // no server selected
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
443 this->vscroll.ScrollTowards(this->list_pos);
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
444 }
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
445
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
446 public:
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
447 NetworkGameWindow(const WindowDesc *desc) : QueryStringBaseWindow(NETWORK_CLIENT_NAME_LENGTH)
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
448 {
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
449 this->InitNested(desc, 0);
11462
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
450
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10180
diff changeset
451 ttd_strlcpy(this->edit_str_buf, _settings_client.network.client_name, this->edit_str_size);
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
452 this->afilter = CS_ALPHANUMERAL;
9897
5b558ce6cb0e (svn r14046) -Codechange: make the size of querystring "widgets" more configurable.
rubidium <rubidium@openttd.org>
parents: 9827
diff changeset
453 InitializeTextBuffer(&this->text, this->edit_str_buf, this->edit_str_size, 120);
11081
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 11069
diff changeset
454 this->SetFocusedWidget(NGWW_CLIENT);
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
455
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
456 UpdateNetworkGameWindow(true);
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
457
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10180
diff changeset
458 this->field = NGWW_CLIENT;
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
459 this->server = NULL;
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
460 this->list_pos = SLP_INVALID;
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
461
11682
2b28014c1684 (svn r16065) -Fix: don't readd (and resolve) the last joined server each time the window gets repainted
rubidium <rubidium@openttd.org>
parents: 11612
diff changeset
462 this->last_joined = NetworkGameListAddItem(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port));
2b28014c1684 (svn r16065) -Fix: don't readd (and resolve) the last joined server each time the window gets repainted
rubidium <rubidium@openttd.org>
parents: 11612
diff changeset
463
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
464 this->servers.SetListing(this->last_sorting);
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
465 this->servers.SetSortFuncs(this->sorter_funcs);
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
466 this->servers.ForceRebuild();
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
467 this->SortNetworkGameList();
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
468 }
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
469
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
470 ~NetworkGameWindow()
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
471 {
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
472 this->last_sorting = this->servers.GetListing();
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
473 }
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
474
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
475 virtual void SetStringParameters(int widget) const
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
476 {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
477 switch (widget) {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
478 case NGWW_CONN_BTN:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
479 SetDParam(0, _lan_internet_types_dropdown[_settings_client.network.lan_internet]);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
480 break;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
481 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
482 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
483
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
484 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *resize)
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
485 {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
486 switch (widget) {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
487 case NGWW_CONN_BTN:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
488 *size = maxdim(GetStringBoundingBox(_lan_internet_types_dropdown[0]), GetStringBoundingBox(_lan_internet_types_dropdown[1]));
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
489 size->width += padding.width;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
490 size->height += padding.height;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
491 break;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
492
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
493 case NGWW_MATRIX:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
494 resize->height = WD_MATRIX_TOP + FONT_HEIGHT_NORMAL + WD_MATRIX_BOTTOM;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
495 size->height = 10 * resize->height;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
496 break;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
497
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
498 case NGWW_LASTJOINED:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
499 size->height = WD_MATRIX_TOP + FONT_HEIGHT_NORMAL + WD_MATRIX_BOTTOM;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
500 break;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
501
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
502 case NGWW_NAME:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
503 size->width += 2 * WD_SORTBUTTON_ARROW_WIDTH; // Make space for the arrow
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
504 break;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
505
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
506 case NGWW_CLIENTS:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
507 size->width += 2 * WD_SORTBUTTON_ARROW_WIDTH; // Make space for the arrow
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
508 SetDParam(0, 255);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
509 SetDParam(1, 255);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
510 SetDParam(2, 15);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
511 SetDParam(3, 15);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
512 *size = maxdim(*size, GetStringBoundingBox(STR_NETWORK_SERVER_LIST_GENERAL_ONLINE));
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
513 break;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
514
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
515 case NGWW_MAPSIZE:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
516 size->width += 2 * WD_SORTBUTTON_ARROW_WIDTH; // Make space for the arrow
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
517 SetDParam(0, 2048);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
518 SetDParam(1, 2048);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
519 *size = maxdim(*size, GetStringBoundingBox(STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT));
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
520 break;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
521
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
522 case NGWW_DATE:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
523 case NGWW_YEARS:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
524 size->width += 2 * WD_SORTBUTTON_ARROW_WIDTH; // Make space for the arrow
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
525 SetDParam(0, 99999);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
526 *size = maxdim(*size, GetStringBoundingBox(STR_JUST_INT));
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
527 break;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
528
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
529 case NGWW_DETAILS_SPACER:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
530 size->height = 20 + 12 * FONT_HEIGHT_NORMAL;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
531 break;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
532 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
533 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
534
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
535 virtual void DrawWidget(const Rect &r, int widget) const
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
536 {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
537 switch (widget) {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
538 case NGWW_MATRIX: {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
539 uint16 y = r.top + WD_MATRIX_TOP;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
540
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
541 const int max = min(this->vscroll.GetPosition() + this->vscroll.GetCapacity(), (int)this->servers.Length());
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
542
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
543 for (int i = this->vscroll.GetPosition(); i < max; ++i) {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
544 const NetworkGameList *ngl = this->servers[i];
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
545 this->DrawServerLine(ngl, y, ngl == this->server);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
546 y += this->resize.step_height;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
547 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
548 } break;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
549
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
550 case NGWW_LASTJOINED:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
551 /* Draw the last joined server, if any */
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
552 if (this->last_joined != NULL) this->DrawServerLine(this->last_joined, r.top + WD_MATRIX_TOP, this->last_joined == this->server);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
553 break;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
554
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
555 case NGWW_DETAILS:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
556 this->DrawDetails(r);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
557 break;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
558
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
559 case NGWW_NAME:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
560 case NGWW_CLIENTS:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
561 case NGWW_MAPSIZE:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
562 case NGWW_DATE:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
563 case NGWW_YEARS:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
564 case NGWW_INFO:
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
565 if (widget - NGWW_NAME == this->servers.SortType()) this->DrawSortButtonState(widget, this->servers.IsDescSortOrder() ? SBS_DOWN : SBS_UP);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
566 break;
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
567 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
568 }
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
569
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
570
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
571 virtual void OnPaint()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
572 {
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
573 if (this->servers.NeedRebuild()) {
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
574 this->BuildNetworkGameList();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
575 }
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
576 this->SortNetworkGameList();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
577
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
578 NetworkGameList *sel = this->server;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
579 /* 'Refresh' button invisible if no server selected */
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
580 this->SetWidgetDisabledState(NGWW_REFRESH, sel == NULL);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
581 /* 'Join' button disabling conditions */
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
582 this->SetWidgetDisabledState(NGWW_JOIN, sel == NULL || // no Selected Server
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
583 !sel->online || // Server offline
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
584 sel->info.clients_on >= sel->info.clients_max || // Server full
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
585 !sel->info.compatible); // Revision mismatch
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
586
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
587 /* 'NewGRF Settings' button invisible if no NewGRF is used */
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
588 this->GetWidget<NWidgetStacked>(NGWW_NEWGRF_SEL)->SetDisplayedPlane(sel == NULL || !sel->online || sel->info.grfconfig == NULL);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
589
9273
72a6d2e60834 (svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents: 9269
diff changeset
590 this->DrawWidgets();
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10180
diff changeset
591 /* Edit box to set client name */
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10180
diff changeset
592 this->DrawEditBox(NGWW_CLIENT);
13373
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
593 }
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
594
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
595 void DrawDetails(const Rect &r) const
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
596 {
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
597 NetworkGameList *sel = this->server;
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
598
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
599 const int detail_height = 6 + 8 + 6 + 3 * FONT_HEIGHT_NORMAL;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
600
13373
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
601 /* Draw the right menu */
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
602 GfxFillRect(r.left + 1, r.top + 1, r.right - 1, r.top + detail_height - 1, 157);
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
603 if (sel == NULL) {
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
604 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + 6 + 4 + FONT_HEIGHT_NORMAL, STR_NETWORK_SERVER_LIST_GAME_INFO, TC_FROMSTRING, SA_CENTER);
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
605 } else if (!sel->online) {
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
606 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + 6 + 4 + FONT_HEIGHT_NORMAL, sel->info.server_name, TC_ORANGE, SA_CENTER); // game name
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
607
13373
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
608 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + detail_height + 4, STR_NETWORK_SERVER_LIST_SERVER_OFFLINE, TC_FROMSTRING, SA_CENTER); // server offline
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
609 } else { // show game 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
610
13373
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
611 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + 6, STR_NETWORK_SERVER_LIST_GAME_INFO, TC_FROMSTRING, SA_CENTER);
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
612 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + 6 + 4 + FONT_HEIGHT_NORMAL, sel->info.server_name, TC_ORANGE, SA_CENTER); // game name
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
613 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + 6 + 8 + 2 * FONT_HEIGHT_NORMAL, sel->info.map_name, TC_BLACK, SA_CENTER); // map name
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
614
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
615 uint16 y = r.top + detail_height + 4;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
616
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
617 SetDParam(0, sel->info.clients_on);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
618 SetDParam(1, sel->info.clients_max);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
619 SetDParam(2, sel->info.companies_on);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
620 SetDParam(3, sel->info.companies_max);
13373
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
621 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_CLIENTS);
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
622 y += FONT_HEIGHT_NORMAL;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
623
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
624 SetDParam(0, STR_NETWORK_LANG_ANY + sel->info.server_lang);
13373
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
625 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_LANGUAGE); // server language
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
626 y += FONT_HEIGHT_NORMAL;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
627
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
628 SetDParam(0, STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE + sel->info.map_set);
13373
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
629 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_TILESET); // tileset
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
630 y += FONT_HEIGHT_NORMAL;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
631
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
632 SetDParam(0, sel->info.map_width);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
633 SetDParam(1, sel->info.map_height);
13373
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
634 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_MAP_SIZE); // map size
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
635 y += FONT_HEIGHT_NORMAL;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
636
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
637 SetDParamStr(0, sel->info.server_revision);
13373
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
638 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_SERVER_VERSION); // server version
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
639 y += FONT_HEIGHT_NORMAL;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
640
11608
6eadd58dd981 (svn r15982) -Codechange: use GetAddressAsString to get the name instead of passing the hostname and the IP into a string.
rubidium <rubidium@openttd.org>
parents: 11578
diff changeset
641 SetDParamStr(0, sel->address.GetAddressAsString());
13373
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
642 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_SERVER_ADDRESS); // server address
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
643 y += FONT_HEIGHT_NORMAL;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
644
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
645 SetDParam(0, sel->info.start_date);
13373
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
646 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_START_DATE); // start date
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
647 y += FONT_HEIGHT_NORMAL;
8937
f031c91c0cdc (svn r12709) -Feature: show the last joined server. Heavily based on a patch by Yexo.
rubidium <rubidium@openttd.org>
parents: 8931
diff changeset
648
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
649 SetDParam(0, sel->info.game_date);
13373
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
650 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_CURRENT_DATE); // current date
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
651 y += FONT_HEIGHT_NORMAL;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
652
13373
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
653 y += WD_PAR_VSEP_NORMAL;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
654
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
655 if (!sel->info.compatible) {
13373
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
656 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, sel->info.version_compatible ? STR_NETWORK_SERVER_LIST_GRF_MISMATCH : STR_NETWORK_SERVER_LIST_VERSION_MISMATCH, TC_FROMSTRING, SA_CENTER); // server mismatch
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
657 } else if (sel->info.clients_on == sel->info.clients_max) {
9451
49dffcace617 (svn r13369) -Codechange: remove duplication of network configuration settings between NetworkSettings and NetworkGameInfo.
rubidium <rubidium@openttd.org>
parents: 9441
diff changeset
658 /* Show: server full, when clients_on == max_clients */
13373
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
659 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_SERVER_FULL, TC_FROMSTRING, SA_CENTER); // server full
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
660 } else if (sel->info.use_password) {
13373
758ee10ac14a (svn r17882) -Codechange: make the code to draw the details in the server list a seperate function and remove some magic numbers
rubidium <rubidium@openttd.org>
parents: 13368
diff changeset
661 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_PASSWORD, TC_FROMSTRING, SA_CENTER); // password warning
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
662 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
663 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
664 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
665
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
666 virtual void OnClick(Point pt, int widget)
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
667 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
668 this->field = widget;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
669 switch (widget) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
670 case NGWW_CANCEL: // Cancel button
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
671 DeleteWindowById(WC_NETWORK_WINDOW, 0);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
672 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
673
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
674 case NGWW_CONN_BTN: // 'Connection' droplist
9420
ec47ec544964 (svn r13334) -Codechange: move the network settings variables from network/network_internal to settings.
rubidium <rubidium@openttd.org>
parents: 9416
diff changeset
675 ShowDropDownMenu(this, _lan_internet_types_dropdown, _settings_client.network.lan_internet, NGWW_CONN_BTN, 0, 0); // do it for widget NSSW_CONN_BTN
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
676 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
677
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
678 case NGWW_NAME: // Sort by name
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
679 case NGWW_CLIENTS: // Sort by connected clients
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
680 case NGWW_MAPSIZE: // Sort by map size
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
681 case NGWW_DATE: // Sort by date
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
682 case NGWW_YEARS: // Sort by years
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
683 case NGWW_INFO: // Connectivity (green dot)
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
684 if (this->servers.SortType() == widget - NGWW_NAME) {
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
685 this->servers.ToggleSortOrder();
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
686 if (this->list_pos != SLP_INVALID) this->list_pos = this->servers.Length() - this->list_pos - 1;
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
687 } else {
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
688 this->servers.SetSortType(widget - NGWW_NAME);
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
689 this->servers.ForceResort();
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
690 this->SortNetworkGameList();
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
691 }
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
692 this->ScrollToSelectedServer();
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
693 this->SetDirty();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
694 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
695
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
696 case NGWW_MATRIX: { // Matrix to show networkgames
13695
75560523443c (svn r18220) -Codechange: Reduce number of nested widget dynamic casts.
alberth <alberth@openttd.org>
parents: 13694
diff changeset
697 uint32 id_v = (pt.y - this->GetWidget<NWidgetBase>(NGWW_MATRIX)->pos_y) / this->resize.step_height;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
698
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
699 if (id_v >= this->vscroll.GetCapacity()) return; // click out of bounds
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
700 id_v += this->vscroll.GetPosition();
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
701
9415
195a505bb0f4 (svn r13328) -Fix (r13327): Don't access an item when there isn't any
skidd13 <skidd13@openttd.org>
parents: 9414
diff changeset
702 this->server = (id_v < this->servers.Length()) ? this->servers[id_v] : NULL;
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
703 this->list_pos = (server == NULL) ? SLP_INVALID : id_v;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
704 this->SetDirty();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
705 } break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
706
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
707 case NGWW_LASTJOINED: {
11551
939f22f810ef (svn r15916) -Codechange: let the network game list use NetworkAddress
rubidium <rubidium@openttd.org>
parents: 11524
diff changeset
708 NetworkGameList *last_joined = NetworkGameListAddItem(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port));
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
709 if (last_joined != NULL) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
710 this->server = last_joined;
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
711
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
712 /* search the position of the newly selected server */
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
713 for (uint i = 0; i < this->servers.Length(); i++) {
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
714 if (this->servers[i] == this->server) {
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
715 this->list_pos = i;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
716 break;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
717 }
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
718 }
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
719 this->ScrollToSelectedServer();
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
720 this->SetDirty();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
721 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
722 } 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
723
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
724 case NGWW_FIND: // Find server automatically
9420
ec47ec544964 (svn r13334) -Codechange: move the network settings variables from network/network_internal to settings.
rubidium <rubidium@openttd.org>
parents: 9416
diff changeset
725 switch (_settings_client.network.lan_internet) {
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
726 case 0: NetworkUDPSearchGame(); break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
727 case 1: NetworkUDPQueryMasterServer(); break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
728 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
729 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
730
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
731 case NGWW_ADD: // Add a server
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: 9481
diff changeset
732 SetDParamStr(0, _settings_client.network.connect_to_ip);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
733 ShowQueryString(
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: 9481
diff changeset
734 STR_JUST_RAW_STRING,
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
735 STR_NETWORK_SERVER_LIST_ENTER_IP,
11860
ebf5beca420e (svn r16254) -Fix [FS#2886]: Magic constant removed.
frosch <frosch@openttd.org>
parents: 11847
diff changeset
736 NETWORK_HOSTNAME_LENGTH, // maximum number of characters including '\0'
ebf5beca420e (svn r16254) -Fix [FS#2886]: Magic constant removed.
frosch <frosch@openttd.org>
parents: 11847
diff changeset
737 0, // no limit in pixels
10145
dbe302da93a8 (svn r14331) -Codechange: use an enum as additional parameter for ShowQueryString()
smatz <smatz@openttd.org>
parents: 10061
diff changeset
738 this, CS_ALPHANUMERAL, QSF_ACCEPT_UNCHANGED);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
739 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
740
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
741 case NGWW_START: // Start server
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
742 ShowNetworkStartServerWindow();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
743 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
744
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
745 case NGWW_JOIN: // Join Game
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
746 if (this->server != NULL) {
11551
939f22f810ef (svn r15916) -Codechange: let the network game list use NetworkAddress
rubidium <rubidium@openttd.org>
parents: 11524
diff changeset
747 snprintf(_settings_client.network.last_host, sizeof(_settings_client.network.last_host), "%s", this->server->address.GetHostname());
939f22f810ef (svn r15916) -Codechange: let the network game list use NetworkAddress
rubidium <rubidium@openttd.org>
parents: 11524
diff changeset
748 _settings_client.network.last_port = this->server->address.GetPort();
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
749 ShowNetworkLobbyWindow(this->server);
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
750 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
751 break;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
752
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
753 case NGWW_REFRESH: // Refresh
11551
939f22f810ef (svn r15916) -Codechange: let the network game list use NetworkAddress
rubidium <rubidium@openttd.org>
parents: 11524
diff changeset
754 if (this->server != NULL) NetworkUDPQueryServer(this->server->address);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
755 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
756
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
757 case NGWW_NEWGRF: // NewGRF Settings
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
758 if (this->server != NULL) ShowNewGRFSettings(false, false, false, &this->server->info.grfconfig);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
759 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
760 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
761 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
762
10049
78cd320f0fc9 (svn r14209) -Feature(tte): doubleclick to join selected server/company
smatz <smatz@openttd.org>
parents: 9898
diff changeset
763 virtual void OnDoubleClick(Point pt, int widget)
78cd320f0fc9 (svn r14209) -Feature(tte): doubleclick to join selected server/company
smatz <smatz@openttd.org>
parents: 9898
diff changeset
764 {
10061
a2adf1e62010 (svn r14228) -Fix (r14209): double click on the 'last joined' server didn't work
smatz <smatz@openttd.org>
parents: 10049
diff changeset
765 if (widget == NGWW_MATRIX || widget == NGWW_LASTJOINED) {
10049
78cd320f0fc9 (svn r14209) -Feature(tte): doubleclick to join selected server/company
smatz <smatz@openttd.org>
parents: 9898
diff changeset
766 /* is the Join button enabled? */
78cd320f0fc9 (svn r14209) -Feature(tte): doubleclick to join selected server/company
smatz <smatz@openttd.org>
parents: 9898
diff changeset
767 if (!this->IsWidgetDisabled(NGWW_JOIN)) this->OnClick(pt, NGWW_JOIN);
78cd320f0fc9 (svn r14209) -Feature(tte): doubleclick to join selected server/company
smatz <smatz@openttd.org>
parents: 9898
diff changeset
768 }
78cd320f0fc9 (svn r14209) -Feature(tte): doubleclick to join selected server/company
smatz <smatz@openttd.org>
parents: 9898
diff changeset
769 }
78cd320f0fc9 (svn r14209) -Feature(tte): doubleclick to join selected server/company
smatz <smatz@openttd.org>
parents: 9898
diff changeset
770
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
771 virtual void OnDropdownSelect(int widget, int index)
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
772 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
773 switch (widget) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
774 case NGWW_CONN_BTN:
9420
ec47ec544964 (svn r13334) -Codechange: move the network settings variables from network/network_internal to settings.
rubidium <rubidium@openttd.org>
parents: 9416
diff changeset
775 _settings_client.network.lan_internet = index;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
776 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
777
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
778 default:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
779 NOT_REACHED();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
780 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
781
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
782 this->SetDirty();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
783 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
784
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
785 virtual void OnMouseLoop()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
786 {
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10180
diff changeset
787 if (this->field == NGWW_CLIENT) this->HandleEditBox(NGWW_CLIENT);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
788 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
789
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
790 virtual void OnInvalidateData(int data)
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
791 {
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: 10771
diff changeset
792 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: 10771
diff changeset
793 /* Remove the selection */
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: 10771
diff changeset
794 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: 10771
diff changeset
795 this->server = NULL;
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: 10771
diff changeset
796 this->list_pos = SLP_INVALID;
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: 10771
diff changeset
797 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: 10771
diff changeset
798
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: 10771
diff changeset
799 /* Reiterate the whole server list as we downloaded some files */
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: 10771
diff changeset
800 case 2:
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: 10771
diff changeset
801 for (NetworkGameList **iter = this->servers.Begin(); iter != this->servers.End(); iter++) {
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: 10771
diff changeset
802 NetworkGameList *item = *iter;
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: 10771
diff changeset
803 bool missing_grfs = false;
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: 10771
diff changeset
804 for (GRFConfig *c = item->info.grfconfig; c != NULL; c = c->next) {
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: 10771
diff changeset
805 if (c->status != GCS_NOT_FOUND) continue;
0744d383a56b (svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents: 10771
diff changeset
806
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: 10771
diff changeset
807 const GRFConfig *f = FindGRFConfig(c->grfid, c->md5sum);
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: 10771
diff changeset
808 if (f == NULL) {
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: 10771
diff changeset
809 missing_grfs = true;
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: 10771
diff changeset
810 continue;
0744d383a56b (svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates.
rubidium <rubidium@openttd.org>
parents: 10771
diff changeset
811 }
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: 10771
diff changeset
812
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: 10771
diff changeset
813 c->filename = f->filename;
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: 10771
diff changeset
814 c->name = f->name;
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: 10771
diff changeset
815 c->info = f->info;
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: 10771
diff changeset
816 c->status = GCS_UNKNOWN;
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: 10771
diff changeset
817 }
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: 10771
diff changeset
818
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: 10771
diff changeset
819 if (!missing_grfs) item->info.compatible = item->info.version_compatible;
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: 10771
diff changeset
820 }
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: 10771
diff changeset
821 break;
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
822 }
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
823 this->servers.ForceRebuild();
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
824 this->SetDirty();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
825 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
826
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9274
diff changeset
827 virtual EventState OnKeyPress(uint16 key, uint16 keycode)
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
828 {
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9274
diff changeset
829 EventState state = ES_NOT_HANDLED;
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
830
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
831 /* handle up, down, pageup, pagedown, home and end */
10641
94cbc9a0158b (svn r14943) -Cleanup: remove some rogue spaces/replace some rogue tabs with spaces
rubidium <rubidium@openttd.org>
parents: 10559
diff changeset
832 if (keycode == WKC_UP || keycode == WKC_DOWN || keycode == WKC_PAGEUP || keycode == WKC_PAGEDOWN || keycode == WKC_HOME || keycode == WKC_END) {
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
833 if (this->servers.Length() == 0) return ES_HANDLED;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
834 switch (keycode) {
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
835 case WKC_UP:
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
836 /* scroll up by one */
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
837 if (this->server == NULL) return ES_HANDLED;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
838 if (this->list_pos > 0) this->list_pos--;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
839 break;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
840 case WKC_DOWN:
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
841 /* scroll down by one */
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
842 if (this->server == NULL) return ES_HANDLED;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
843 if (this->list_pos < this->servers.Length() - 1) this->list_pos++;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
844 break;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
845 case WKC_PAGEUP:
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
846 /* scroll up a page */
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
847 if (this->server == NULL) return ES_HANDLED;
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
848 this->list_pos = (this->list_pos < this->vscroll.GetCapacity()) ? 0 : this->list_pos - this->vscroll.GetCapacity();
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
849 break;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
850 case WKC_PAGEDOWN:
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
851 /* scroll down a page */
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
852 if (this->server == NULL) return ES_HANDLED;
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
853 this->list_pos = min(this->list_pos + this->vscroll.GetCapacity(), (int)this->servers.Length() - 1);
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
854 break;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
855 case WKC_HOME:
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
856 /* jump to beginning */
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
857 this->list_pos = 0;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
858 break;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
859 case WKC_END:
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
860 /* jump to end */
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
861 this->list_pos = this->servers.Length() - 1;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
862 break;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
863 default: break;
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
864 }
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
865
10641
94cbc9a0158b (svn r14943) -Cleanup: remove some rogue spaces/replace some rogue tabs with spaces
rubidium <rubidium@openttd.org>
parents: 10559
diff changeset
866 this->server = this->servers[this->list_pos];
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
867
10641
94cbc9a0158b (svn r14943) -Cleanup: remove some rogue spaces/replace some rogue tabs with spaces
rubidium <rubidium@openttd.org>
parents: 10559
diff changeset
868 /* scroll to the new server if it is outside the current range */
94cbc9a0158b (svn r14943) -Cleanup: remove some rogue spaces/replace some rogue tabs with spaces
rubidium <rubidium@openttd.org>
parents: 10559
diff changeset
869 this->ScrollToSelectedServer();
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
870
10641
94cbc9a0158b (svn r14943) -Cleanup: remove some rogue spaces/replace some rogue tabs with spaces
rubidium <rubidium@openttd.org>
parents: 10559
diff changeset
871 /* redraw window */
94cbc9a0158b (svn r14943) -Cleanup: remove some rogue spaces/replace some rogue tabs with spaces
rubidium <rubidium@openttd.org>
parents: 10559
diff changeset
872 this->SetDirty();
94cbc9a0158b (svn r14943) -Cleanup: remove some rogue spaces/replace some rogue tabs with spaces
rubidium <rubidium@openttd.org>
parents: 10559
diff changeset
873 return ES_HANDLED;
94cbc9a0158b (svn r14943) -Cleanup: remove some rogue spaces/replace some rogue tabs with spaces
rubidium <rubidium@openttd.org>
parents: 10559
diff changeset
874 }
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
875
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10180
diff changeset
876 if (this->field != NGWW_CLIENT) {
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
877 if (this->server != NULL) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
878 if (keycode == WKC_DELETE) { // Press 'delete' to remove servers
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
879 NetworkGameListRemoveItem(this->server);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
880 this->server = NULL;
10279
63bfb33e1a12 (svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents: 10208
diff changeset
881 this->list_pos = SLP_INVALID;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
882 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
883 }
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9274
diff changeset
884 return state;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
885 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
886
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10292
diff changeset
887 if (this->HandleEditBoxKey(NGWW_CLIENT, key, keycode, state) == HEBR_CONFIRM) return state;
7343
76fcc58cd6c7 (svn r10706) -Codechange: allow resizing the multiplayer server list window.
rubidium <rubidium@openttd.org>
parents: 7341
diff changeset
888
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
889 /* The name is only allowed when it starts with a letter! */
9416
b6fea52829e6 (svn r13330) -Fix: 'Player name' dialog was broken in two ways
smatz <smatz@openttd.org>
parents: 9415
diff changeset
890 if (!StrEmpty(this->edit_str_buf) && this->edit_str_buf[0] != ' ') {
10310
5cefbb1c3fd7 (svn r14555) -Codechange: replace ttd_strlcat and ttd_strlcpy with strecat and strecpy where direct conversion is possible
skidd13 <skidd13@openttd.org>
parents: 10301
diff changeset
891 strecpy(_settings_client.network.client_name, this->edit_str_buf, lastof(_settings_client.network.client_name));
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
892 } else {
10310
5cefbb1c3fd7 (svn r14555) -Codechange: replace ttd_strlcat and ttd_strlcpy with strecat and strecpy where direct conversion is possible
skidd13 <skidd13@openttd.org>
parents: 10301
diff changeset
893 strecpy(_settings_client.network.client_name, "Player", lastof(_settings_client.network.client_name));
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
894 }
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9274
diff changeset
895 return state;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
896 }
7343
76fcc58cd6c7 (svn r10706) -Codechange: allow resizing the multiplayer server list window.
rubidium <rubidium@openttd.org>
parents: 7341
diff changeset
897
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
898 virtual void OnQueryTextFinished(char *str)
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
899 {
12543
ea54644136d4 (svn r16981) -Fix [FS#3062]: the last manually added server would not be saved
rubidium <rubidium@openttd.org>
parents: 12493
diff changeset
900 if (!StrEmpty(str)) NetworkAddServer(str);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
901 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
902
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
903 virtual void OnResize()
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
904 {
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
905 NWidgetCore *nwi = this->GetWidget<NWidgetCore>(NGWW_MATRIX);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
906 this->vscroll.SetCapacity(nwi->current_y / this->resize.step_height);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
907 nwi->widget_data = (this->vscroll.GetCapacity() << MAT_ROW_START) + (1 << MAT_COL_START);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
908 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
909 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
910
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
911 Listing NetworkGameWindow::last_sorting = {false, 5};
11376
b9b2391afd1a (svn r15726) -Codechange: unify coding style for const pointers
smatz <smatz@openttd.org>
parents: 11374
diff changeset
912 GUIGameServerList::SortFunction * const NetworkGameWindow::sorter_funcs[] = {
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
913 &NGameNameSorter,
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
914 &NGameClientSorter,
9660
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
915 &NGameMapSizeSorter,
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
916 &NGameDateSorter,
25bb065da92b (svn r13732) -Feature: add a few extra columns with information to the server list. Patch by Pegasus.
rubidium <rubidium@openttd.org>
parents: 9659
diff changeset
917 &NGameYearsSorter,
9414
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
918 &NGameAllowedSorter
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
919 };
ca0680949f89 (svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents: 9413
diff changeset
920
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
921 static NWidgetBase *MakeResizableHeader(int *biggest_index)
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
922 {
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
923 *biggest_index = max<int>(*biggest_index, NGWW_INFO);
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
924 return new NWidgetServerListHeader();
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
925 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
926
11462
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
927 /* Generates incorrect display_flags for widgets NGWW_NAME, and incorrect
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
928 * display_flags and/or left/right side for the overlapping widgets
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
929 * NGWW_CLIENTS through NGWW_YEARS.
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
930 */
13096
e3e4c1648e0c (svn r17596) -Codechange: constify some tables
smatz <smatz@openttd.org>
parents: 13041
diff changeset
931 static const NWidgetPart _nested_network_game_widgets[] = {
11462
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
932 /* TOP */
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
933 NWidget(NWID_HORIZONTAL),
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
934 NWidget(WWT_CLOSEBOX, COLOUR_LIGHT_BLUE, NGWW_CLOSE),
13687
a6bb900d62c9 (svn r18212) -Codechange: remove unneeded 'parameters' for WWT_CAPTION, WWT_CLOSEBOX and WWT_STICKYBOX in the nested widget arrays
rubidium <rubidium@openttd.org>
parents: 13676
diff changeset
935 NWidget(WWT_CAPTION, COLOUR_LIGHT_BLUE, NGWW_CAPTION), SetDataTip(STR_NETWORK_SERVER_LIST_CAPTION, STR_NULL), // XXX Add default caption tooltip!
11462
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
936 EndContainer(),
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
937 NWidget(WWT_PANEL, COLOUR_LIGHT_BLUE, NGWW_MAIN),
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
938 NWidget(NWID_VERTICAL), SetPIP(10, 7, 0),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
939 NWidget(NWID_HORIZONTAL), SetPIP(10, 7, 10),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
940 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NGWW_CONNECTION), SetDataTip(STR_NETWORK_SERVER_LIST_CONNECTION, STR_NULL),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
941 NWidget(WWT_DROPDOWN, COLOUR_LIGHT_BLUE, NGWW_CONN_BTN),
13556
e7121cbd5f5a (svn r18078) -Codechange: remove some duplicate (non translatable) strings
rubidium <rubidium@openttd.org>
parents: 13449
diff changeset
942 SetDataTip(STR_BLACK_STRING, STR_NETWORK_SERVER_LIST_CONNECTION_TOOLTIP),
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
943 NWidget(NWID_SPACER), SetFill(true, false), SetResize(1, 0),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
944 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NGWW_CLIENT_LABEL), SetDataTip(STR_NETWORK_SERVER_LIST_PLAYER_NAME, STR_NULL),
11462
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
945 NWidget(WWT_EDITBOX, COLOUR_LIGHT_BLUE, NGWW_CLIENT), SetMinimalSize(151, 12),
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
946 SetDataTip(STR_NETWORK_SERVER_LIST_PLAYER_NAME_OSKTITLE, STR_NETWORK_SERVER_LIST_ENTER_NAME_TOOLTIP),
11462
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
947 EndContainer(),
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
948 NWidget(NWID_HORIZONTAL), SetPIP(10, 7, 10),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
949 /* LEFT SIDE */
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
950 NWidget(NWID_VERTICAL),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
951 NWidget(NWID_HORIZONTAL),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
952 NWidget(NWID_VERTICAL),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
953 NWidgetFunction(MakeResizableHeader),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
954 NWidget(WWT_MATRIX, COLOUR_LIGHT_BLUE, NGWW_MATRIX), SetResize(1, 1), SetFill(true, false),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
955 SetDataTip(0, STR_NETWORK_SERVER_LIST_CLICK_GAME_TO_SELECT),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
956 EndContainer(),
13688
93b8eb4077e0 (svn r18213) -Codechange: it's not needed to manually set the fill, (re)size and tooltip for scrollbars
rubidium <rubidium@openttd.org>
parents: 13687
diff changeset
957 NWidget(WWT_SCROLLBAR, COLOUR_LIGHT_BLUE, NGWW_SCROLLBAR),
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
958 EndContainer(),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
959 NWidget(NWID_SPACER), SetMinimalSize(0, 7), SetResize(1, 0), SetFill(true, true),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
960 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NGWW_LASTJOINED_LABEL), SetFill(true, false),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
961 SetDataTip(STR_NETWORK_SERVER_LIST_LAST_JOINED_SERVER, STR_NULL), SetResize(1, 0),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
962 NWidget(NWID_HORIZONTAL), SetPIP(0, 0, WD_VSCROLLBAR_WIDTH),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
963 NWidget(WWT_PANEL, COLOUR_LIGHT_BLUE, NGWW_LASTJOINED), SetFill(true, false), SetResize(1, 0),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
964 SetDataTip(0x0, STR_NETWORK_SERVER_LIST_CLICK_TO_SELECT_LAST),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
965 EndContainer(),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
966 EndContainer(),
11462
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
967 EndContainer(),
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
968 /* RIGHT SIDE */
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
969 NWidget(WWT_PANEL, COLOUR_LIGHT_BLUE, NGWW_DETAILS),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
970 NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(5, 5, 5),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
971 NWidget(WWT_EMPTY, INVALID_COLOUR, NGWW_DETAILS_SPACER), SetMinimalSize(140, 155), SetResize(0, 1), SetFill(true, true), // Make sure it's at least this wide
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
972 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(5, 5, 5),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
973 NWidget(NWID_SPACER), SetFill(true, false),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
974 NWidget(NWID_SELECTION, INVALID_COLOUR, NGWW_NEWGRF_SEL),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
975 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_NEWGRF), SetFill(true, false), SetDataTip(STR_INTRO_NEWGRF_SETTINGS, STR_NULL),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
976 NWidget(NWID_SPACER), SetFill(true, false),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
977 EndContainer(),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
978 EndContainer(),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
979 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(5, 5, 5),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
980 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_JOIN), SetFill(true, false), SetDataTip(STR_NETWORK_SERVER_LIST_JOIN_GAME, STR_NULL),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
981 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_REFRESH), SetFill(true, false), SetDataTip(STR_NETWORK_SERVER_LIST_REFRESH, STR_NETWORK_SERVER_LIST_REFRESH_TOOLTIP),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
982 EndContainer(),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
983 EndContainer(),
11462
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
984 EndContainer(),
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
985 EndContainer(),
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
986 /* BOTTOM */
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
987 NWidget(NWID_HORIZONTAL),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
988 NWidget(NWID_VERTICAL),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
989 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(10, 7, 4),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
990 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_FIND), SetResize(1, 0), SetFill(true, false), SetDataTip(STR_NETWORK_SERVER_LIST_FIND_SERVER, STR_NETWORK_SERVER_LIST_FIND_SERVER_TOOLTIP),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
991 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_ADD), SetResize(1, 0), SetFill(true, false), SetDataTip(STR_NETWORK_SERVER_LIST_ADD_SERVER, STR_NETWORK_SERVER_LIST_ADD_SERVER_TOOLTIP),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
992 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_START), SetResize(1, 0), SetFill(true, false), SetDataTip(STR_NETWORK_SERVER_LIST_START_SERVER, STR_NETWORK_SERVER_LIST_START_SERVER_TOOLTIP),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
993 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_CANCEL), SetResize(1, 0), SetFill(true, false), SetDataTip(STR_BUTTON_CANCEL, STR_NULL),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
994 EndContainer(),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
995 NWidget(NWID_SPACER), SetMinimalSize(0, 6), SetResize(1, 0), SetFill(true, false),
11462
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
996 EndContainer(),
13396
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
997 NWidget(NWID_VERTICAL),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
998 NWidget(NWID_SPACER), SetFill(false, true),
c50ed98b49ff (svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents: 13378
diff changeset
999 NWidget(WWT_RESIZEBOX, COLOUR_LIGHT_BLUE, NGWW_RESIZE),
11462
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
1000 EndContainer(),
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
1001 EndContainer(),
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
1002 EndContainer(),
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
1003 EndContainer(),
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
1004 };
043d6b6bf604 (svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents: 11454
diff changeset
1005
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11368
diff changeset
1006 static const WindowDesc _network_game_window_desc(
13628
2123810ad874 (svn r18152) -Codechange: remove the 'minimum window size' from the WindowDesc; it's determined from the (nested) widgets
rubidium <rubidium@openttd.org>
parents: 13602
diff changeset
1007 WDP_CENTER, WDP_CENTER, 1000, 730,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5669
diff changeset
1008 WC_NETWORK_WINDOW, WC_NONE,
7343
76fcc58cd6c7 (svn r10706) -Codechange: allow resizing the multiplayer server list window.
rubidium <rubidium@openttd.org>
parents: 7341
diff changeset
1009 WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE,
13564
bae287664b02 (svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents: 13556
diff changeset
1010 _nested_network_game_widgets, lengthof(_nested_network_game_widgets)
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11368
diff changeset
1011 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1012
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 5916
diff changeset
1013 void ShowNetworkGameWindow()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1014 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1015 static bool first = true;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1016 DeleteWindowById(WC_NETWORK_WINDOW, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1017
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1018 /* Only show once */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1019 if (first) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1020 first = false;
11368
82c90cd591ab (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents: 11361
diff changeset
1021 /* add all servers from the config file to our list */
11565
cf37aec7c469 (svn r15931) -Codechange: let the host and ban lists use of SmallVector.
rubidium <rubidium@openttd.org>
parents: 11551
diff changeset
1022 for (char **iter = _network_host_list.Begin(); iter != _network_host_list.End(); iter++) {
cf37aec7c469 (svn r15931) -Codechange: let the host and ban lists use of SmallVector.
rubidium <rubidium@openttd.org>
parents: 11551
diff changeset
1023 NetworkAddServer(*iter);
13194
4b124fd22c06 (svn r17701) -Codechange: don't start line with a space if it's not inside comment
smatz <smatz@openttd.org>
parents: 13186
diff changeset
1024 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1025 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1026
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1027 new NetworkGameWindow(&_network_game_window_desc);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1028 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1029
7959
35aac28f0022 (svn r11515) -Codechange: cleanup of NetworkStartServerWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7931
diff changeset
1030 /** Enum for NetworkStartServerWindow, referring to _network_start_server_window_widgets */
35aac28f0022 (svn r11515) -Codechange: cleanup of NetworkStartServerWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7931
diff changeset
1031 enum NetworkStartServerWidgets {
11846
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1032 NSSW_CLOSE, ///< Close 'X' button
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1033 NSSW_CAPTION,
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1034 NSSW_BACKGROUND,
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1035 NSSW_GAMENAME_LABEL,
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1036 NSSW_GAMENAME, ///< Background for editbox to set game name
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1037 NSSW_SETPWD, ///< 'Set password' button
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1038 NSSW_SELECT_MAP_LABEL,
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1039 NSSW_SELMAP, ///< 'Select map' list
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1040 NSSW_SCROLLBAR,
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1041 NSSW_CONNTYPE_LABEL,
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1042 NSSW_CONNTYPE_BTN, ///< 'Connection type' droplist button
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1043 NSSW_CLIENTS_LABEL,
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1044 NSSW_CLIENTS_BTND, ///< 'Max clients' downarrow
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1045 NSSW_CLIENTS_TXT, ///< 'Max clients' text
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1046 NSSW_CLIENTS_BTNU, ///< 'Max clients' uparrow
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1047 NSSW_COMPANIES_LABEL,
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1048 NSSW_COMPANIES_BTND, ///< 'Max companies' downarrow
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1049 NSSW_COMPANIES_TXT, ///< 'Max companies' text
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1050 NSSW_COMPANIES_BTNU, ///< 'Max companies' uparrow
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1051 NSSW_SPECTATORS_LABEL,
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1052 NSSW_SPECTATORS_BTND, ///< 'Max spectators' downarrow
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1053 NSSW_SPECTATORS_TXT, ///< 'Max spectators' text
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1054 NSSW_SPECTATORS_BTNU, ///< 'Max spectators' uparrow
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1055
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1056 NSSW_LANGUAGE_LABEL,
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1057 NSSW_LANGUAGE_BTN, ///< 'Language spoken' droplist button
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1058 NSSW_START, ///< 'Start' button
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1059 NSSW_LOAD, ///< 'Load' button
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1060 NSSW_CANCEL, ///< 'Cancel' button
7959
35aac28f0022 (svn r11515) -Codechange: cleanup of NetworkStartServerWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7931
diff changeset
1061 };
35aac28f0022 (svn r11515) -Codechange: cleanup of NetworkStartServerWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7931
diff changeset
1062
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1063 struct NetworkStartServerWindow : public QueryStringBaseWindow {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1064 byte field; ///< Selected text-field
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1065 FiosItem *map; ///< Selected map
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1066 byte widget_id; ///< The widget that has the pop-up input menu
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1067
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1068 NetworkStartServerWindow(const WindowDesc *desc) : QueryStringBaseWindow(NETWORK_NAME_LENGTH)
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1069 {
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1070 this->InitNested(desc, 0);
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1071
9897
5b558ce6cb0e (svn r14046) -Codechange: make the size of querystring "widgets" more configurable.
rubidium <rubidium@openttd.org>
parents: 9827
diff changeset
1072 ttd_strlcpy(this->edit_str_buf, _settings_client.network.server_name, this->edit_str_size);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1073
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1074 _saveload_mode = SLD_NEW_GAME;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1075 BuildFileList();
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1076 this->vscroll.SetCapacity(14);
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
1077 this->vscroll.SetCount(_fios_items.Length() + 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
1078
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1079 this->afilter = CS_ALPHANUMERAL;
9897
5b558ce6cb0e (svn r14046) -Codechange: make the size of querystring "widgets" more configurable.
rubidium <rubidium@openttd.org>
parents: 9827
diff changeset
1080 InitializeTextBuffer(&this->text, this->edit_str_buf, this->edit_str_size, 160);
11081
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 11069
diff changeset
1081 this->SetFocusedWidget(NSSW_GAMENAME);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1082
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1083 this->field = NSSW_GAMENAME;
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1084 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1085
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1086 virtual void SetStringParameters(int widget) const
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1087 {
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1088 switch (widget) {
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1089 case NSSW_CONNTYPE_BTN:
13378
1d98fd82aa68 (svn r17887) -Codechange: remove some (now) unneeded {SKIP}s
rubidium <rubidium@openttd.org>
parents: 13377
diff changeset
1090 SetDParam(0, _connection_types_dropdown[_settings_client.network.server_advertise]);
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1091 break;
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1092
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1093 case NSSW_CLIENTS_TXT:
13378
1d98fd82aa68 (svn r17887) -Codechange: remove some (now) unneeded {SKIP}s
rubidium <rubidium@openttd.org>
parents: 13377
diff changeset
1094 SetDParam(0, _settings_client.network.max_clients);
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1095 break;
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1096
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1097 case NSSW_COMPANIES_TXT:
13378
1d98fd82aa68 (svn r17887) -Codechange: remove some (now) unneeded {SKIP}s
rubidium <rubidium@openttd.org>
parents: 13377
diff changeset
1098 SetDParam(0, _settings_client.network.max_companies);
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1099 break;
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1100
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1101 case NSSW_SPECTATORS_TXT:
13378
1d98fd82aa68 (svn r17887) -Codechange: remove some (now) unneeded {SKIP}s
rubidium <rubidium@openttd.org>
parents: 13377
diff changeset
1102 SetDParam(0, _settings_client.network.max_spectators);
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1103 break;
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1104
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1105 case NSSW_LANGUAGE_BTN:
13378
1d98fd82aa68 (svn r17887) -Codechange: remove some (now) unneeded {SKIP}s
rubidium <rubidium@openttd.org>
parents: 13377
diff changeset
1106 SetDParam(0, STR_NETWORK_LANG_ANY + _settings_client.network.server_lang);
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1107 break;
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1108 }
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1109 }
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1110
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1111 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *resize)
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1112 {
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1113 switch (widget) {
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1114 case NSSW_CONNTYPE_BTN:
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1115 *size = maxdim(GetStringBoundingBox(_connection_types_dropdown[0]), GetStringBoundingBox(_connection_types_dropdown[1]));
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1116 size->width += padding.width;
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1117 size->height += padding.height;
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1118 break;
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1119
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1120 case NSSW_SELMAP:
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1121 resize->height = FONT_HEIGHT_NORMAL;
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1122 size->height = 14 * resize->height + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1123 break;
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1124 }
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1125 }
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1126
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1127 virtual void DrawWidget(const Rect &r, int widget) const
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1128 {
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1129 switch (widget) {
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1130 case NSSW_SELMAP:
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1131 this->DrawMapSelection(r);
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1132 break;
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1133
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1134 case NSSW_SETPWD:
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1135 /* if password is set, draw red '*' next to 'Set password' button */
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1136 if (!StrEmpty(_settings_client.network.server_password)) DrawString(r.right + WD_FRAMERECT_LEFT, this->width - WD_FRAMERECT_RIGHT, r.top, "*", TC_RED);
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1137 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1138 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1139
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1140 virtual void OnPaint()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1141 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1142 /* draw basic widgets */
9273
72a6d2e60834 (svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents: 9269
diff changeset
1143 this->DrawWidgets();
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1144
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1145 /* editbox to set game name */
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1146 this->DrawEditBox(NSSW_GAMENAME);
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1147 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1148
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1149 void DrawMapSelection(const Rect &r) const
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1150 {
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1151 int y = r.top + WD_FRAMERECT_TOP;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1152 /* draw list of maps */
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1153 GfxFillRect(r.left + 1, r.top + 1, r.right - 1, r.bottom - 1, 0xD7); // black background of maps list
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1154
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
1155 for (uint pos = this->vscroll.GetPosition(); pos < _fios_items.Length() + 1; pos++) {
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1156 const FiosItem *item = _fios_items.Get(pos - 1);
11464
56ddb993f77d (svn r15822) -Codechange: replace some magic numbers and improve alignment of the start server window.
rubidium <rubidium@openttd.org>
parents: 11462
diff changeset
1157 if (item == this->map || (pos == 0 && this->map == NULL)) {
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1158 GfxFillRect(r.left + 1, y, r.right - 1, y + FONT_HEIGHT_NORMAL - 1, 155); // show highlighted item with a different colour
11464
56ddb993f77d (svn r15822) -Codechange: replace some magic numbers and improve alignment of the start server window.
rubidium <rubidium@openttd.org>
parents: 11462
diff changeset
1159 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1160
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1161 if (pos == 0) {
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1162 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_START_SERVER_SERVER_RANDOM_GAME, TC_DARK_GREEN);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1163 } else {
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1164 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, item->title, _fios_colours[item->type] );
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1165 }
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1166 y += FONT_HEIGHT_NORMAL;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1167
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1168 if (y >= this->vscroll.GetCapacity() * FONT_HEIGHT_NORMAL + r.top) break;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1169 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1170 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1171
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1172 virtual void OnClick(Point pt, int widget)
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1173 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1174 this->field = widget;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1175 switch (widget) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1176 case NSSW_CLOSE: // Close 'X'
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1177 case NSSW_CANCEL: // Cancel button
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1178 ShowNetworkGameWindow();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1179 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1180
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1181 case NSSW_SETPWD: // Set password button
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1182 this->widget_id = NSSW_SETPWD;
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: 9481
diff changeset
1183 SetDParamStr(0, _settings_client.network.server_password);
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1184 ShowQueryString(STR_JUST_RAW_STRING, STR_NETWORK_START_SERVER_SET_PASSWORD, 20, 250, this, CS_ALPHANUMERAL, QSF_NONE);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1185 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1186
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1187 case NSSW_SELMAP: { // Select map
13695
75560523443c (svn r18220) -Codechange: Reduce number of nested widget dynamic casts.
alberth <alberth@openttd.org>
parents: 13694
diff changeset
1188 int y = (pt.y - this->GetWidget<NWidgetBase>(NSSW_SELMAP)->pos_y - WD_FRAMERECT_TOP) / FONT_HEIGHT_NORMAL;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1189
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
1190 y += this->vscroll.GetPosition();
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
1191 if (y >= this->vscroll.GetCount()) return;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1192
9441
e899ed594e7c (svn r13359) -Codechange: convert _fios_items to a SmallVector
skidd13 <skidd13@openttd.org>
parents: 9428
diff changeset
1193 this->map = (y == 0) ? NULL : _fios_items.Get(y - 1);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1194 this->SetDirty();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1195 } break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1196
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1197 case NSSW_CONNTYPE_BTN: // Connection type
9481
cbb53dc04d5b (svn r13433) -Codechange: remove a now useless global variable.
rubidium <rubidium@openttd.org>
parents: 9462
diff changeset
1198 ShowDropDownMenu(this, _connection_types_dropdown, _settings_client.network.server_advertise, NSSW_CONNTYPE_BTN, 0, 0); // do it for widget NSSW_CONNTYPE_BTN
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1199 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
1200
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1201 case NSSW_CLIENTS_BTND: case NSSW_CLIENTS_BTNU: // Click on up/down button for number of clients
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1202 case NSSW_COMPANIES_BTND: case NSSW_COMPANIES_BTNU: // Click on up/down button for number of companies
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1203 case NSSW_SPECTATORS_BTND: case NSSW_SPECTATORS_BTNU: // Click on up/down button for number of spectators
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1204 /* Don't allow too fast scrolling */
10180
e024f1d28082 (svn r14390) -Codechange: replace magic constants with symbolic constants.
rubidium <rubidium@openttd.org>
parents: 10145
diff changeset
1205 if ((this->flags4 & WF_TIMEOUT_MASK) <= WF_TIMEOUT_TRIGGER) {
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1206 this->HandleButtonClick(widget);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1207 this->SetDirty();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1208 switch (widget) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1209 default: NOT_REACHED();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1210 case NSSW_CLIENTS_BTND: case NSSW_CLIENTS_BTNU:
9451
49dffcace617 (svn r13369) -Codechange: remove duplication of network configuration settings between NetworkSettings and NetworkGameInfo.
rubidium <rubidium@openttd.org>
parents: 9441
diff changeset
1211 _settings_client.network.max_clients = Clamp(_settings_client.network.max_clients + widget - NSSW_CLIENTS_TXT, 2, MAX_CLIENTS);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1212 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1213 case NSSW_COMPANIES_BTND: case NSSW_COMPANIES_BTNU:
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10180
diff changeset
1214 _settings_client.network.max_companies = Clamp(_settings_client.network.max_companies + widget - NSSW_COMPANIES_TXT, 1, MAX_COMPANIES);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1215 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1216 case NSSW_SPECTATORS_BTND: case NSSW_SPECTATORS_BTNU:
9451
49dffcace617 (svn r13369) -Codechange: remove duplication of network configuration settings between NetworkSettings and NetworkGameInfo.
rubidium <rubidium@openttd.org>
parents: 9441
diff changeset
1217 _settings_client.network.max_spectators = Clamp(_settings_client.network.max_spectators + widget - NSSW_SPECTATORS_TXT, 0, MAX_CLIENTS);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1218 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1219 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1220 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1221 _left_button_clicked = false;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1222 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1223
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10180
diff changeset
1224 case NSSW_CLIENTS_TXT: // Click on number of clients
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1225 this->widget_id = NSSW_CLIENTS_TXT;
9451
49dffcace617 (svn r13369) -Codechange: remove duplication of network configuration settings between NetworkSettings and NetworkGameInfo.
rubidium <rubidium@openttd.org>
parents: 9441
diff changeset
1226 SetDParam(0, _settings_client.network.max_clients);
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1227 ShowQueryString(STR_JUST_INT, STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS, 4, 50, this, CS_NUMERAL, QSF_NONE);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1228 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1229
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1230 case NSSW_COMPANIES_TXT: // Click on number of companies
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1231 this->widget_id = NSSW_COMPANIES_TXT;
9451
49dffcace617 (svn r13369) -Codechange: remove duplication of network configuration settings between NetworkSettings and NetworkGameInfo.
rubidium <rubidium@openttd.org>
parents: 9441
diff changeset
1232 SetDParam(0, _settings_client.network.max_companies);
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1233 ShowQueryString(STR_JUST_INT, STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES, 3, 50, this, CS_NUMERAL, QSF_NONE);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1234 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1235
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1236 case NSSW_SPECTATORS_TXT: // Click on number of spectators
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1237 this->widget_id = NSSW_SPECTATORS_TXT;
9451
49dffcace617 (svn r13369) -Codechange: remove duplication of network configuration settings between NetworkSettings and NetworkGameInfo.
rubidium <rubidium@openttd.org>
parents: 9441
diff changeset
1238 SetDParam(0, _settings_client.network.max_spectators);
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1239 ShowQueryString(STR_JUST_INT, STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS, 4, 50, this, CS_NUMERAL, QSF_NONE);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1240 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1241
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1242 case NSSW_LANGUAGE_BTN: { // Language
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1243 uint sel = 0;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1244 for (uint i = 0; i < lengthof(_language_dropdown) - 1; i++) {
9451
49dffcace617 (svn r13369) -Codechange: remove duplication of network configuration settings between NetworkSettings and NetworkGameInfo.
rubidium <rubidium@openttd.org>
parents: 9441
diff changeset
1245 if (_language_dropdown[i] == STR_NETWORK_LANG_ANY + _settings_client.network.server_lang) {
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1246 sel = i;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1247 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1248 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1249 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1250 ShowDropDownMenu(this, _language_dropdown, sel, NSSW_LANGUAGE_BTN, 0, 0);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1251 } break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1252
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1253 case NSSW_START: // Start game
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1254 _is_network_server = true;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1255
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1256 if (this->map == NULL) { // start random new game
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1257 ShowGenerateLandscape();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1258 } else { // load a scenario
11256
f63c1d69ed92 (svn r15605) -Codechange: constify a function
rubidium <rubidium@openttd.org>
parents: 11223
diff changeset
1259 const char *name = FiosBrowseTo(this->map);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1260 if (name != NULL) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1261 SetFiosType(this->map->type);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1262 _file_to_saveload.filetype = FT_SCENARIO;
10310
5cefbb1c3fd7 (svn r14555) -Codechange: replace ttd_strlcat and ttd_strlcpy with strecat and strecpy where direct conversion is possible
skidd13 <skidd13@openttd.org>
parents: 10301
diff changeset
1263 strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name));
5cefbb1c3fd7 (svn r14555) -Codechange: replace ttd_strlcat and ttd_strlcpy with strecat and strecpy where direct conversion is possible
skidd13 <skidd13@openttd.org>
parents: 10301
diff changeset
1264 strecpy(_file_to_saveload.title, this->map->title, lastof(_file_to_saveload.title));
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1265
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1266 delete this;
11223
4928ebb36453 (svn r15576) -Codechange: rename SwitchModes to SwitchMode and don't hardcode the values for that enum.
yexo <yexo@openttd.org>
parents: 11218
diff changeset
1267 SwitchToMode(SM_START_SCENARIO);
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1268 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1269 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1270 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1271
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1272 case NSSW_LOAD: // Load game
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1273 _is_network_server = true;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1274 /* XXX - WC_NETWORK_WINDOW (this window) should stay, but if it stays, it gets
11361
02313cc6114e (svn r15711) -Codechange: lots of whitespace cleanup/fixes
rubidium <rubidium@openttd.org>
parents: 11319
diff changeset
1275 * copied all the elements of 'load game' and upon closing that, it segfaults */
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1276 delete this;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1277 ShowSaveLoadDialog(SLD_LOAD_GAME);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1278 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1279 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1280 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1281
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1282 virtual void OnDropdownSelect(int widget, int index)
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1283 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1284 switch (widget) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1285 case NSSW_CONNTYPE_BTN:
9481
cbb53dc04d5b (svn r13433) -Codechange: remove a now useless global variable.
rubidium <rubidium@openttd.org>
parents: 9462
diff changeset
1286 _settings_client.network.server_advertise = (index != 0);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1287 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1288 case NSSW_LANGUAGE_BTN:
9451
49dffcace617 (svn r13369) -Codechange: remove duplication of network configuration settings between NetworkSettings and NetworkGameInfo.
rubidium <rubidium@openttd.org>
parents: 9441
diff changeset
1289 _settings_client.network.server_lang = _language_dropdown[index] - STR_NETWORK_LANG_ANY;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1290 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1291 default:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1292 NOT_REACHED();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1293 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1294
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1295 this->SetDirty();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1296 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1297
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1298 virtual void OnMouseLoop()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1299 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1300 if (this->field == NSSW_GAMENAME) this->HandleEditBox(NSSW_GAMENAME);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1301 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1302
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9274
diff changeset
1303 virtual EventState OnKeyPress(uint16 key, uint16 keycode)
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1304 {
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9274
diff changeset
1305 EventState state = ES_NOT_HANDLED;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1306 if (this->field == NSSW_GAMENAME) {
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10292
diff changeset
1307 if (this->HandleEditBoxKey(NSSW_GAMENAME, key, keycode, state) == HEBR_CONFIRM) return state;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1308
10310
5cefbb1c3fd7 (svn r14555) -Codechange: replace ttd_strlcat and ttd_strlcpy with strecat and strecpy where direct conversion is possible
skidd13 <skidd13@openttd.org>
parents: 10301
diff changeset
1309 strecpy(_settings_client.network.server_name, this->text.buf, lastof(_settings_client.network.server_name));
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1310 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1311
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9274
diff changeset
1312 return state;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1313 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1314
13694
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1315 virtual void OnTimeout()
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1316 {
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1317 static const int raise_widgets[] = {NSSW_CLIENTS_BTND, NSSW_CLIENTS_BTNU, NSSW_COMPANIES_BTND, NSSW_COMPANIES_BTNU, NSSW_SPECTATORS_BTND, NSSW_SPECTATORS_BTNU, WIDGET_LIST_END};
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1318 for (const int *widget = raise_widgets; *widget != WIDGET_LIST_END; widget++) {
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1319 if (this->IsWidgetLowered(*widget)) {
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1320 this->RaiseWidget(*widget);
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1321 this->SetWidgetDirty(*widget);
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1322 }
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1323 }
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1324 }
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1325
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1326 virtual void OnQueryTextFinished(char *str)
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1327 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1328 if (str == NULL) return;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1329
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1330 if (this->widget_id == NSSW_SETPWD) {
10310
5cefbb1c3fd7 (svn r14555) -Codechange: replace ttd_strlcat and ttd_strlcpy with strecat and strecpy where direct conversion is possible
skidd13 <skidd13@openttd.org>
parents: 10301
diff changeset
1331 strecpy(_settings_client.network.server_password, str, lastof(_settings_client.network.server_password));
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1332 } else {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1333 int32 value = atoi(str);
13034
6eb3f749890a (svn r17532) -Codechange: Rename several Invalidate functions to SetDirty for more consistency and distinguishability.
frosch <frosch@openttd.org>
parents: 13028
diff changeset
1334 this->SetWidgetDirty(this->widget_id);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1335 switch (this->widget_id) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1336 default: NOT_REACHED();
9451
49dffcace617 (svn r13369) -Codechange: remove duplication of network configuration settings between NetworkSettings and NetworkGameInfo.
rubidium <rubidium@openttd.org>
parents: 9441
diff changeset
1337 case NSSW_CLIENTS_TXT: _settings_client.network.max_clients = Clamp(value, 2, MAX_CLIENTS); break;
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10180
diff changeset
1338 case NSSW_COMPANIES_TXT: _settings_client.network.max_companies = Clamp(value, 1, MAX_COMPANIES); break;
9451
49dffcace617 (svn r13369) -Codechange: remove duplication of network configuration settings between NetworkSettings and NetworkGameInfo.
rubidium <rubidium@openttd.org>
parents: 9441
diff changeset
1339 case NSSW_SPECTATORS_TXT: _settings_client.network.max_spectators = Clamp(value, 0, MAX_CLIENTS); break;
7439
7ffb3a464c3a (svn r10886) -Codechange: modify the "start network server" GUI so it can actually handle more than 10 clients/companies/spectators in a nice way, i.e. without making a combobox with 100 players and add 90 new strings to be able to do so.
rubidium <rubidium@openttd.org>
parents: 7363
diff changeset
1340 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1341 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1342
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1343 this->SetDirty();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1344 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1345 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1346
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1347 static const NWidgetPart _nested_network_start_server_window_widgets[] = {
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1348 NWidget(NWID_HORIZONTAL),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1349 NWidget(WWT_CLOSEBOX, COLOUR_LIGHT_BLUE, NSSW_CLOSE),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1350 NWidget(WWT_CAPTION, COLOUR_LIGHT_BLUE, NSSW_CAPTION), SetDataTip(STR_NETWORK_START_SERVER_CAPTION, STR_NULL),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1351 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1352 NWidget(WWT_PANEL, COLOUR_LIGHT_BLUE, NSSW_BACKGROUND),
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1353 NWidget(NWID_HORIZONTAL), SetPIP(10, 8, 10),
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1354 NWidget(NWID_VERTICAL), SetPIP(10, 0, 10),
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1355 /* Game name widgets */
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1356 NWidget(NWID_HORIZONTAL), SetPIP(0, 2, 0),
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1357 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NSSW_GAMENAME_LABEL), SetDataTip(STR_NETWORK_START_SERVER_NEW_GAME_NAME, STR_NULL),
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1358 NWidget(WWT_EDITBOX, COLOUR_LIGHT_BLUE, NSSW_GAMENAME), SetMinimalSize(10, 12), SetFill(true, false),
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1359 SetDataTip(STR_NETWORK_START_SERVER_NEW_GAME_NAME_OSKTITLE, STR_NETWORK_START_SERVER_NEW_GAME_NAME_TOOLTIP),
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1360 EndContainer(),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1361 /* List of playable scenarios. */
13693
a41d4d5669ba (svn r18218) -Codechange: make a few network windows big font aware
rubidium <rubidium@openttd.org>
parents: 13688
diff changeset
1362 NWidget(NWID_SPACER), SetMinimalSize(0, 8), SetFill(true, false),
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1363 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NSSW_SELECT_MAP_LABEL), SetFill(true, false), SetDataTip(STR_NETWORK_START_SERVER_SELECT_MAP, STR_NULL),
13693
a41d4d5669ba (svn r18218) -Codechange: make a few network windows big font aware
rubidium <rubidium@openttd.org>
parents: 13688
diff changeset
1364 NWidget(NWID_SPACER), SetMinimalSize(0, 6), SetFill(true, false),
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1365 NWidget(NWID_HORIZONTAL),
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1366 NWidget(WWT_PANEL, COLOUR_LIGHT_BLUE, NSSW_SELMAP), SetMinimalSize(250, 0), SetFill(true, true), SetDataTip(STR_NULL, STR_NETWORK_START_SERVER_SELECT_MAP_TOOLTIP), EndContainer(),
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1367 NWidget(WWT_SCROLLBAR, COLOUR_LIGHT_BLUE, NSSW_SCROLLBAR),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1368 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1369 EndContainer(),
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1370 NWidget(NWID_VERTICAL), SetPIP(10, 0, 10),
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1371 /* Password widgets. */
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1372 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NSSW_SETPWD), SetFill(true, false),
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1373 SetDataTip(STR_NETWORK_START_SERVER_SET_PASSWORD, STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1374 /* Combo/selection boxes to control Connection Type / Max Clients / Max Companies / Max Observers / Language */
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1375 NWidget(NWID_SPACER), SetFill(true, true),
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1376 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NSSW_CONNTYPE_LABEL), SetFill(true, false), SetDataTip(STR_NETWORK_SERVER_LIST_CONNECTION, STR_NULL),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1377 NWidget(NWID_SPACER), SetMinimalSize(0, 1),
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1378 NWidget(WWT_DROPDOWN, COLOUR_LIGHT_BLUE, NSSW_CONNTYPE_BTN), SetFill(true, false),
13556
e7121cbd5f5a (svn r18078) -Codechange: remove some duplicate (non translatable) strings
rubidium <rubidium@openttd.org>
parents: 13449
diff changeset
1379 SetDataTip(STR_BLACK_STRING, STR_NETWORK_SERVER_LIST_CONNECTION_TOOLTIP),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1380
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1381 NWidget(NWID_SPACER), SetMinimalSize(0, 6),
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1382 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NSSW_CLIENTS_LABEL), SetFill(true, false), SetDataTip(STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS, STR_NULL),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1383 NWidget(NWID_SPACER), SetMinimalSize(0, 1),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1384 NWidget(NWID_HORIZONTAL),
13694
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1385 NWidget(WWT_IMGBTN, COLOUR_LIGHT_BLUE, NSSW_CLIENTS_BTND), SetMinimalSize(12, 12), SetFill(false, true),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1386 SetDataTip(SPR_ARROW_DOWN, STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP),
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1387 NWidget(WWT_PUSHTXTBTN, COLOUR_LIGHT_BLUE, NSSW_CLIENTS_TXT), SetFill(true, false),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1388 SetDataTip(STR_NETWORK_START_SERVER_CLIENTS_SELECT, STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP),
13694
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1389 NWidget(WWT_IMGBTN, COLOUR_LIGHT_BLUE, NSSW_CLIENTS_BTNU), SetMinimalSize(12, 12), SetFill(false, true),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1390 SetDataTip(SPR_ARROW_UP, STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1391 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1392
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1393 NWidget(NWID_SPACER), SetMinimalSize(0, 6),
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1394 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NSSW_COMPANIES_LABEL), SetFill(true, false), SetDataTip(STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES, STR_NULL),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1395 NWidget(NWID_SPACER), SetMinimalSize(0, 1),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1396 NWidget(NWID_HORIZONTAL),
13694
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1397 NWidget(WWT_IMGBTN, COLOUR_LIGHT_BLUE, NSSW_COMPANIES_BTND), SetMinimalSize(12, 12), SetFill(false, true),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1398 SetDataTip(SPR_ARROW_DOWN, STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP),
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1399 NWidget(WWT_PUSHTXTBTN, COLOUR_LIGHT_BLUE, NSSW_COMPANIES_TXT), SetFill(true, false),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1400 SetDataTip(STR_NETWORK_START_SERVER_COMPANIES_SELECT, STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP),
13694
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1401 NWidget(WWT_IMGBTN, COLOUR_LIGHT_BLUE, NSSW_COMPANIES_BTNU), SetMinimalSize(12, 12), SetFill(false, true),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1402 SetDataTip(SPR_ARROW_UP, STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1403 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1404
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1405 NWidget(NWID_SPACER), SetMinimalSize(0, 6),
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1406 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NSSW_SPECTATORS_LABEL), SetFill(true, false), SetDataTip(STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS, STR_NULL),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1407 NWidget(NWID_SPACER), SetMinimalSize(0, 1),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1408 NWidget(NWID_HORIZONTAL),
13694
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1409 NWidget(WWT_IMGBTN, COLOUR_LIGHT_BLUE, NSSW_SPECTATORS_BTND), SetMinimalSize(12, 12), SetFill(false, true),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1410 SetDataTip(SPR_ARROW_DOWN, STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP),
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1411 NWidget(WWT_PUSHTXTBTN, COLOUR_LIGHT_BLUE, NSSW_SPECTATORS_TXT), SetFill(true, false),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1412 SetDataTip(STR_NETWORK_START_SERVER_SPECTATORS_SELECT, STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP),
13694
c6a83b1d3775 (svn r18219) -Fix: the up/down buttons in the start network server window didn't work anymore
rubidium <rubidium@openttd.org>
parents: 13693
diff changeset
1413 NWidget(WWT_IMGBTN, COLOUR_LIGHT_BLUE, NSSW_SPECTATORS_BTNU), SetMinimalSize(12, 12), SetFill(false, true),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1414 SetDataTip(SPR_ARROW_UP, STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1415 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1416
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1417 NWidget(NWID_SPACER), SetMinimalSize(0, 6),
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1418 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NSSW_LANGUAGE_LABEL), SetFill(true, false), SetDataTip(STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN, STR_NULL),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1419 NWidget(NWID_SPACER), SetMinimalSize(0, 1),
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1420 NWidget(WWT_DROPDOWN, COLOUR_LIGHT_BLUE, NSSW_LANGUAGE_BTN), SetFill(true, false),
13556
e7121cbd5f5a (svn r18078) -Codechange: remove some duplicate (non translatable) strings
rubidium <rubidium@openttd.org>
parents: 13449
diff changeset
1421 SetDataTip(STR_BLACK_STRING, STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1422 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1423 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1424 /* Buttons Start / Load / Cancel. */
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1425 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(10, 5, 10),
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1426 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NSSW_START), SetFill(true, false), SetDataTip(STR_NETWORK_START_SERVER_START_GAME, STR_NETWORK_START_SERVER_START_GAME_TOOLTIP),
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1427 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NSSW_LOAD), SetFill(true, false), SetDataTip(STR_NETWORK_START_SERVER_LOAD_GAME, STR_NETWORK_START_SERVER_LOAD_GAME_TOOLTIP),
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1428 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NSSW_CANCEL), SetFill(true, false), SetDataTip(STR_BUTTON_CANCEL, STR_NULL),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1429 EndContainer(),
13377
8aa346820113 (svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents: 13376
diff changeset
1430 NWidget(NWID_SPACER), SetMinimalSize(0, 10),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1431 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1432 };
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1433
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11368
diff changeset
1434 static const WindowDesc _network_start_server_window_desc(
13628
2123810ad874 (svn r18152) -Codechange: remove the 'minimum window size' from the WindowDesc; it's determined from the (nested) widgets
rubidium <rubidium@openttd.org>
parents: 13602
diff changeset
1435 WDP_CENTER, WDP_CENTER, 420, 244,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5669
diff changeset
1436 WC_NETWORK_WINDOW, WC_NONE,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1437 WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
13564
bae287664b02 (svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents: 13556
diff changeset
1438 _nested_network_start_server_window_widgets, lengthof(_nested_network_start_server_window_widgets)
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11368
diff changeset
1439 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1440
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 5916
diff changeset
1441 static void ShowNetworkStartServerWindow()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1442 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1443 DeleteWindowById(WC_NETWORK_WINDOW, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1444
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
1445 new NetworkStartServerWindow(&_network_start_server_window_desc);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1446 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1447
7963
c35c4ff096c4 (svn r11519) -Codechange: enumerization and cleanup of NetworkLobbyWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7961
diff changeset
1448 /** Enum for NetworkLobbyWindow, referring to _network_lobby_window_widgets */
c35c4ff096c4 (svn r11519) -Codechange: enumerization and cleanup of NetworkLobbyWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7961
diff changeset
1449 enum NetworkLobbyWindowWidgets {
11846
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1450 NLWW_CLOSE, ///< Close 'X' button
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1451 NLWW_CAPTION, ///< Titlebar
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1452 NLWW_BACKGROUND, ///< Background panel
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1453 NLWW_TEXT, ///< Heading text
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1454 NLWW_HEADER, ///< Header above list of companies
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1455 NLWW_MATRIX, ///< List of companies
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1456 NLWW_SCROLLBAR, ///< Scroll bar
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1457 NLWW_DETAILS, ///< Company details
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1458 NLWW_JOIN, ///< 'Join company' button
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1459 NLWW_NEW, ///< 'New company' button
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1460 NLWW_SPECTATE, ///< 'Spectate game' button
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1461 NLWW_REFRESH, ///< 'Refresh server' button
b9c21ebc0a28 (svn r16236) -Codechange: Make widget enums complete of various network windows, and add them as comment.
alberth <alberth@openttd.org>
parents: 11773
diff changeset
1462 NLWW_CANCEL, ///< 'Cancel' button
7963
c35c4ff096c4 (svn r11519) -Codechange: enumerization and cleanup of NetworkLobbyWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7961
diff changeset
1463 };
c35c4ff096c4 (svn r11519) -Codechange: enumerization and cleanup of NetworkLobbyWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents: 7961
diff changeset
1464
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1465 struct NetworkLobbyWindow : public Window {
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10180
diff changeset
1466 CompanyID company; ///< Select company
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1467 NetworkGameList *server; ///< Selected server
10457
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1468 NetworkCompanyInfo company_info[MAX_COMPANIES];
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1469
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1470 NetworkLobbyWindow(const WindowDesc *desc, NetworkGameList *ngl) :
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1471 Window(), company(INVALID_COMPANY), server(ngl)
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1472 {
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1473 this->InitNested(desc, 0);
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1474 this->OnResize();
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1475 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1476
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1477 CompanyID NetworkLobbyFindCompanyIndex(byte pos) const
10457
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1478 {
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1479 /* Scroll through all this->company_info and get the 'pos' item that is not empty */
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1480 for (CompanyID i = COMPANY_FIRST; i < MAX_COMPANIES; i++) {
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1481 if (!StrEmpty(this->company_info[i].company_name)) {
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1482 if (pos-- == 0) return i;
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1483 }
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1484 }
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1485
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1486 return COMPANY_FIRST;
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1487 }
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1488
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1489 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *resize)
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1490 {
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1491 switch (widget) {
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1492 case NLWW_HEADER:
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1493 size->height = WD_MATRIX_TOP + FONT_HEIGHT_NORMAL + WD_MATRIX_BOTTOM;;
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1494 break;
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1495
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1496 case NLWW_MATRIX:
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1497 resize->height = WD_MATRIX_TOP + FONT_HEIGHT_NORMAL + WD_MATRIX_BOTTOM;
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1498 size->height = 10 * resize->height;
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1499 break;
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1500
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1501 case NLWW_DETAILS:
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1502 size->height = 30 + 11 * FONT_HEIGHT_NORMAL;
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1503 break;
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1504 }
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1505 }
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1506
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1507 virtual void SetStringParameters(int widget) const
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1508 {
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1509 switch (widget) {
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1510 case NLWW_TEXT:
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1511 SetDParamStr(0, this->server->info.server_name);
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1512 break;
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1513 }
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1514 }
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1515
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1516 virtual void DrawWidget(const Rect &r, int widget) const
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1517 {
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1518 switch (widget) {
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1519 case NLWW_DETAILS:
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1520 this->DrawDetails(r);
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1521 break;
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1522
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1523 case NLWW_MATRIX:
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1524 this->DrawMatrix(r);
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1525 break;
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1526 }
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1527 }
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1528
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1529 virtual void OnPaint()
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1530 {
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1531 const NetworkGameInfo *gi = &this->server->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
1532
10696
7edccbb67398 (svn r15027) -Merge: tomatos and bananas left to be, here is NoAI for all to see.
truebrain <truebrain@openttd.org>
parents: 10647
diff changeset
1533 /* Join button is disabled when no company is selected and for AI companies*/
7edccbb67398 (svn r15027) -Merge: tomatos and bananas left to be, here is NoAI for all to see.
truebrain <truebrain@openttd.org>
parents: 10647
diff changeset
1534 this->SetWidgetDisabledState(NLWW_JOIN, this->company == INVALID_COMPANY || GetLobbyCompanyInfo(this->company)->ai);
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1535 /* Cannot start new company if there are too many */
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1536 this->SetWidgetDisabledState(NLWW_NEW, gi->companies_on >= gi->companies_max);
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1537 /* Cannot spectate if there are too many spectators */
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1538 this->SetWidgetDisabledState(NLWW_SPECTATE, gi->spectators_on >= gi->spectators_max);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1539
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
1540 this->vscroll.SetCount(gi->companies_on);
10480
649ba332458f (svn r14735) -Codechange: remove a bit of bit-waste in the map array (without changing the map array) and make the CompanyIDs contiguous.
rubidium <rubidium@openttd.org>
parents: 10475
diff changeset
1541
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1542 /* Draw window widgets */
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1543 this->DrawWidgets();
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1544 }
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1545
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1546 void DrawMatrix(const Rect &r) const
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1547 {
13651
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
1548 bool rtl = _dynlang.text_dir == TD_RTL;
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
1549 uint left = r.left + WD_FRAMERECT_LEFT;
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
1550 uint right = r.right - WD_FRAMERECT_RIGHT;
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
1551
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
1552 uint text_left = left + (rtl ? 20 : 0);
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
1553 uint text_right = right - (rtl ? 0 : 20);
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
1554 uint blob_left = rtl ? left : right - 10;
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
1555 uint lock_left = rtl ? left + 10 : right - 20;
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
1556
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1557 int y = r.top + WD_MATRIX_TOP;
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1558 /* Draw company list */
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1559 int pos = this->vscroll.GetPosition();
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1560 while (pos < this->server->info.companies_on) {
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1561 byte company = NetworkLobbyFindCompanyIndex(pos);
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1562 bool income = false;
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1563 if (this->company == company) {
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1564 GfxFillRect(r.left + 1, y - 2, r.right - 1, y + FONT_HEIGHT_NORMAL, 10); // show highlighted item with a different colour
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1565 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1566
13651
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
1567 DrawString(text_left, text_right, y, this->company_info[company].company_name, TC_BLACK);
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
1568 if (this->company_info[company].use_password != 0) DrawSprite(SPR_LOCK, PAL_NONE, lock_left, y);
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1569
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1570 /* If the company's income was positive puts a green dot else a red dot */
10457
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1571 if (this->company_info[company].income >= 0) income = true;
13693
a41d4d5669ba (svn r18218) -Codechange: make a few network windows big font aware
rubidium <rubidium@openttd.org>
parents: 13688
diff changeset
1572 DrawSprite(SPR_BLOT, income ? PALETTE_TO_GREEN : PALETTE_TO_RED, blob_left, y + (FONT_HEIGHT_NORMAL - 10) / 2);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1573
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1574 pos++;
13375
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1575 y += this->resize.step_height;
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
1576 if (pos >= this->vscroll.GetPosition() + this->vscroll.GetCapacity()) break;
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1577 }
13375
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1578 }
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1579
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1580 void DrawDetails(const Rect &r) const
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1581 {
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1582 const int detail_height = 12 + FONT_HEIGHT_NORMAL + 12;
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1583 /* Draw info about selected company when it is selected in the left window */
13375
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1584 GfxFillRect(r.left + 1, r.top + 1, r.right - 1, r.top + detail_height - 1, 157);
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1585 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + 12, STR_NETWORK_GAME_LOBBY_COMPANY_INFO, TC_FROMSTRING, SA_CENTER);
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1586
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1587 if (this->company == INVALID_COMPANY || StrEmpty(this->company_info[this->company].company_name)) 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
1588
13375
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1589 int y = r.top + detail_height + 4;
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1590 const NetworkGameInfo *gi = &this->server->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
1591
13375
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1592 SetDParam(0, gi->clients_on);
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1593 SetDParam(1, gi->clients_max);
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1594 SetDParam(2, gi->companies_on);
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1595 SetDParam(3, gi->companies_max);
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1596 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_CLIENTS);
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1597 y += FONT_HEIGHT_NORMAL;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1598
13375
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1599 SetDParamStr(0, this->company_info[this->company].company_name);
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1600 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_GAME_LOBBY_COMPANY_NAME);
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1601 y += FONT_HEIGHT_NORMAL;
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1602
13375
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1603 SetDParam(0, this->company_info[this->company].inaugurated_year);
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1604 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_GAME_LOBBY_INAUGURATION_YEAR); // inauguration year
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1605 y += FONT_HEIGHT_NORMAL;
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1606
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1607 SetDParam(0, this->company_info[this->company].company_value);
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1608 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_GAME_LOBBY_VALUE); // company value
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1609 y += FONT_HEIGHT_NORMAL;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1610
13375
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1611 SetDParam(0, this->company_info[this->company].money);
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1612 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_GAME_LOBBY_CURRENT_BALANCE); // current balance
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1613 y += FONT_HEIGHT_NORMAL;
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1614
13375
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1615 SetDParam(0, this->company_info[this->company].income);
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1616 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_GAME_LOBBY_LAST_YEARS_INCOME); // last year's income
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1617 y += FONT_HEIGHT_NORMAL;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1618
13375
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1619 SetDParam(0, this->company_info[this->company].performance);
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1620 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_GAME_LOBBY_PERFORMANCE); // performance
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1621 y += FONT_HEIGHT_NORMAL;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1622
13375
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1623 for (uint i = 0; i < lengthof(this->company_info[this->company].num_vehicle); i++) {
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1624 SetDParam(i, this->company_info[this->company].num_vehicle[i]);
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1625 }
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1626 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_GAME_LOBBY_VEHICLES); // vehicles
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1627 y += FONT_HEIGHT_NORMAL;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1628
13375
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1629 for (uint i = 0; i < lengthof(this->company_info[this->company].num_station); i++) {
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1630 SetDParam(i, this->company_info[this->company].num_station[i]);
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1631 }
13375
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1632 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_GAME_LOBBY_STATIONS); // stations
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1633 y += FONT_HEIGHT_NORMAL;
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1634
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1635 SetDParamStr(0, this->company_info[this->company].clients);
681d470b9847 (svn r17884) -Codechange: remove (most) magic numbers from drawing the details of the network lobby and split detail drawing to its own function
rubidium <rubidium@openttd.org>
parents: 13373
diff changeset
1636 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_GAME_LOBBY_PLAYERS); // players
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1637 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1638
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1639 virtual void OnClick(Point pt, int widget)
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1640 {
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1641 switch (widget) {
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1642 case NLWW_CLOSE: // Close 'X'
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1643 case NLWW_CANCEL: // Cancel button
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1644 ShowNetworkGameWindow();
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1645 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1646
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1647 case NLWW_MATRIX: { // Company list
13695
75560523443c (svn r18220) -Codechange: Reduce number of nested widget dynamic casts.
alberth <alberth@openttd.org>
parents: 13694
diff changeset
1648 uint32 id_v = (pt.y - this->GetWidget<NWidgetBase>(NLWW_MATRIX)->pos_y) / this->resize.step_height;
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1649
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
1650 if (id_v >= this->vscroll.GetCapacity()) break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1651
12878
8ad447b80c42 (svn r17370) -Codechange: make the saveload and network GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents: 12789
diff changeset
1652 id_v += this->vscroll.GetPosition();
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10180
diff changeset
1653 this->company = (id_v >= this->server->info.companies_on) ? INVALID_COMPANY : NetworkLobbyFindCompanyIndex(id_v);
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1654 this->SetDirty();
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1655 } break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1656
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1657 case NLWW_JOIN: // Join company
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1658 /* Button can be clicked only when it is enabled */
11956
6ec97548e188 (svn r16360) -Codechange: don't use _network_playas as a 'second' _local_company, but only as a storage location for the company you want to join in MP.
rubidium <rubidium@openttd.org>
parents: 11924
diff changeset
1659 NetworkClientConnectGame(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port), this->company);
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1660 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1661
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1662 case NLWW_NEW: // New company
11956
6ec97548e188 (svn r16360) -Codechange: don't use _network_playas as a 'second' _local_company, but only as a storage location for the company you want to join in MP.
rubidium <rubidium@openttd.org>
parents: 11924
diff changeset
1663 NetworkClientConnectGame(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port), COMPANY_NEW_COMPANY);
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1664 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1665
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1666 case NLWW_SPECTATE: // Spectate game
11956
6ec97548e188 (svn r16360) -Codechange: don't use _network_playas as a 'second' _local_company, but only as a storage location for the company you want to join in MP.
rubidium <rubidium@openttd.org>
parents: 11924
diff changeset
1667 NetworkClientConnectGame(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port), COMPANY_SPECTATOR);
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1668 break;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1669
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1670 case NLWW_REFRESH: // Refresh
10822
db2fdef51d46 (svn r15157) -Codechange: wrap the hostname/ip and port into a single structure so we can pass either one of them and not convert an ip to a string and then back again.
rubidium <rubidium@openttd.org>
parents: 10793
diff changeset
1671 NetworkTCPQueryServer(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port)); // company info
db2fdef51d46 (svn r15157) -Codechange: wrap the hostname/ip and port into a single structure so we can pass either one of them and not convert an ip to a string and then back again.
rubidium <rubidium@openttd.org>
parents: 10793
diff changeset
1672 NetworkUDPQueryServer(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port)); // general data
10457
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1673 /* Clear the information so removed companies don't remain */
11218
2d1dbbac3a74 (svn r15571) -Fix: incorrect use of memset
smatz <smatz@openttd.org>
parents: 11085
diff changeset
1674 memset(this->company_info, 0, sizeof(this->company_info));
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1675 break;
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1676 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1677 }
10049
78cd320f0fc9 (svn r14209) -Feature(tte): doubleclick to join selected server/company
smatz <smatz@openttd.org>
parents: 9898
diff changeset
1678
78cd320f0fc9 (svn r14209) -Feature(tte): doubleclick to join selected server/company
smatz <smatz@openttd.org>
parents: 9898
diff changeset
1679 virtual void OnDoubleClick(Point pt, int widget)
78cd320f0fc9 (svn r14209) -Feature(tte): doubleclick to join selected server/company
smatz <smatz@openttd.org>
parents: 9898
diff changeset
1680 {
78cd320f0fc9 (svn r14209) -Feature(tte): doubleclick to join selected server/company
smatz <smatz@openttd.org>
parents: 9898
diff changeset
1681 if (widget == NLWW_MATRIX) {
78cd320f0fc9 (svn r14209) -Feature(tte): doubleclick to join selected server/company
smatz <smatz@openttd.org>
parents: 9898
diff changeset
1682 /* is the Join button enabled? */
78cd320f0fc9 (svn r14209) -Feature(tte): doubleclick to join selected server/company
smatz <smatz@openttd.org>
parents: 9898
diff changeset
1683 if (!this->IsWidgetDisabled(NLWW_JOIN)) this->OnClick(pt, NLWW_JOIN);
78cd320f0fc9 (svn r14209) -Feature(tte): doubleclick to join selected server/company
smatz <smatz@openttd.org>
parents: 9898
diff changeset
1684 }
78cd320f0fc9 (svn r14209) -Feature(tte): doubleclick to join selected server/company
smatz <smatz@openttd.org>
parents: 9898
diff changeset
1685 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1686
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1687 virtual void OnResize()
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1688 {
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1689 NWidgetCore *nwi = this->GetWidget<NWidgetCore>(NLWW_MATRIX);
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1690 this->vscroll.SetCapacity(nwi->current_y / this->resize.step_height);
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1691 nwi->widget_data = (this->vscroll.GetCapacity() << MAT_ROW_START) + (1 << MAT_COL_START);
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1692 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1693 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1694
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1695 static const NWidgetPart _nested_network_lobby_window_widgets[] = {
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1696 NWidget(NWID_HORIZONTAL),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1697 NWidget(WWT_CLOSEBOX, COLOUR_LIGHT_BLUE, NLWW_CLOSE),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
1698 NWidget(WWT_CAPTION, COLOUR_LIGHT_BLUE, NLWW_CAPTION), SetDataTip(STR_NETWORK_GAME_LOBBY_CAPTION, STR_NULL),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1699 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1700 NWidget(WWT_PANEL, COLOUR_LIGHT_BLUE, NLWW_BACKGROUND),
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1701 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NLWW_TEXT), SetDataTip(STR_NETWORK_GAME_LOBBY_PREPARE_TO_JOIN, STR_NULL), SetResize(1, 0), SetPadding(10, 10, 0, 10),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1702 NWidget(NWID_SPACER), SetMinimalSize(0, 3),
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1703 NWidget(NWID_HORIZONTAL), SetPIP(10, 0, 10),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1704 /* Company list. */
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1705 NWidget(NWID_VERTICAL),
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1706 NWidget(WWT_PANEL, COLOUR_WHITE, NLWW_HEADER), SetMinimalSize(146, 0), SetResize(1, 0), SetFill(true, false), EndContainer(),
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1707 NWidget(WWT_MATRIX, COLOUR_LIGHT_BLUE, NLWW_MATRIX), SetMinimalSize(146, 0), SetResize(1, 1), SetFill(true, true), SetDataTip(0, STR_NETWORK_GAME_LOBBY_COMPANY_LIST_TOOLTIP),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1708 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1709 NWidget(WWT_SCROLLBAR, COLOUR_LIGHT_BLUE, NLWW_SCROLLBAR),
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1710 NWidget(NWID_SPACER), SetMinimalSize(5, 0), SetResize(0, 1),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1711 /* Company info. */
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1712 NWidget(WWT_PANEL, COLOUR_LIGHT_BLUE, NLWW_DETAILS), SetMinimalSize(232, 0), SetResize(1, 1), SetFill(true, true), EndContainer(),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1713 EndContainer(),
12408
a1c0de97cd50 (svn r16842) -Cleanup: add some spaces around a few operators
rubidium <rubidium@openttd.org>
parents: 11956
diff changeset
1714 NWidget(NWID_SPACER), SetMinimalSize(0, 9),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1715 /* Buttons. */
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1716 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(10, 3, 10),
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1717 NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 3, 0),
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1718 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NLWW_JOIN), SetResize(1, 0), SetFill(true, false), SetDataTip(STR_NETWORK_GAME_LOBBY_JOIN_COMPANY, STR_NETWORK_GAME_LOBBY_JOIN_COMPANY_TOOLTIP),
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1719 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NLWW_NEW), SetResize(1, 0), SetFill(true, false), SetDataTip(STR_NETWORK_GAME_LOBBY_NEW_COMPANY, STR_NETWORK_GAME_LOBBY_NEW_COMPANY_TOOLTIP),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1720 EndContainer(),
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1721 NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 3, 0),
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1722 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NLWW_SPECTATE), SetResize(1, 0), SetFill(true, false), SetDataTip(STR_NETWORK_GAME_LOBBY_SPECTATE_GAME, STR_NETWORK_GAME_LOBBY_SPECTATE_GAME_TOOLTIP),
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1723 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NLWW_REFRESH), SetResize(1, 0), SetFill(true, false), SetDataTip(STR_NETWORK_SERVER_LIST_REFRESH, STR_NETWORK_SERVER_LIST_REFRESH_TOOLTIP),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1724 EndContainer(),
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1725 NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 3, 0),
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1726 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NLWW_CANCEL), SetResize(1, 0), SetFill(true, false), SetDataTip(STR_BUTTON_CANCEL, STR_NULL),
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1727 NWidget(NWID_SPACER), SetFill(true, true),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1728 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1729 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1730 NWidget(NWID_SPACER), SetMinimalSize(0, 8),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1731 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1732 };
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1733
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11368
diff changeset
1734 static const WindowDesc _network_lobby_window_desc(
13628
2123810ad874 (svn r18152) -Codechange: remove the 'minimum window size' from the WindowDesc; it's determined from the (nested) widgets
rubidium <rubidium@openttd.org>
parents: 13602
diff changeset
1735 WDP_CENTER, WDP_CENTER, 0, 0,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5669
diff changeset
1736 WC_NETWORK_WINDOW, WC_NONE,
13376
9f1c0925059c (svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents: 13375
diff changeset
1737 WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE,
13564
bae287664b02 (svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents: 13556
diff changeset
1738 _nested_network_lobby_window_widgets, lengthof(_nested_network_lobby_window_widgets)
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11368
diff changeset
1739 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1740
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1741 /* Show the networklobbywindow with the selected server
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1742 * @param ngl Selected game pointer which is passed to the new window */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1743 static void ShowNetworkLobbyWindow(NetworkGameList *ngl)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1744 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1745 DeleteWindowById(WC_NETWORK_WINDOW, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1746
10822
db2fdef51d46 (svn r15157) -Codechange: wrap the hostname/ip and port into a single structure so we can pass either one of them and not convert an ip to a string and then back again.
rubidium <rubidium@openttd.org>
parents: 10793
diff changeset
1747 NetworkTCPQueryServer(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port)); // company info
db2fdef51d46 (svn r15157) -Codechange: wrap the hostname/ip and port into a single structure so we can pass either one of them and not convert an ip to a string and then back again.
rubidium <rubidium@openttd.org>
parents: 10793
diff changeset
1748 NetworkUDPQueryServer(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port)); // general data
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1749
9177
94a08f9e1061 (svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents: 9165
diff changeset
1750 new NetworkLobbyWindow(&_network_lobby_window_desc, ngl);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1751 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1752
10457
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1753 /**
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1754 * Get the company information of a given company to fill for the lobby.
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1755 * @param company the company to get the company info struct from.
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1756 * @return the company info struct to write the (downloaded) data to.
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1757 */
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1758 NetworkCompanyInfo *GetLobbyCompanyInfo(CompanyID company)
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1759 {
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1760 NetworkLobbyWindow *lobby = dynamic_cast<NetworkLobbyWindow*>(FindWindowById(WC_NETWORK_WINDOW, 0));
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1761 return (lobby != NULL && company < MAX_COMPANIES) ? &lobby->company_info[company] : NULL;
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1762 }
7cfe07199455 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
1763
11368
82c90cd591ab (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents: 11361
diff changeset
1764 /* The window below gives information about the connected clients
82c90cd591ab (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents: 11361
diff changeset
1765 * and also makes able to give money to them, kick them (if server)
82c90cd591ab (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents: 11361
diff changeset
1766 * and stuff like that. */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1767
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10180
diff changeset
1768 extern void DrawCompanyIcon(CompanyID cid, int x, int y);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1769
11368
82c90cd591ab (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents: 11361
diff changeset
1770 /* Every action must be of this form */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1771 typedef void ClientList_Action_Proc(byte client_no);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1772
13443
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1773 static const NWidgetPart _nested_client_list_popup_widgets[] = {
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1774 NWidget(WWT_PANEL, COLOUR_GREY, 0), EndContainer(),
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1775 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1776
13443
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1777 static const WindowDesc _client_list_popup_desc(
13628
2123810ad874 (svn r18152) -Codechange: remove the 'minimum window size' from the WindowDesc; it's determined from the (nested) widgets
rubidium <rubidium@openttd.org>
parents: 13602
diff changeset
1778 WDP_AUTO, WDP_AUTO, 150, 1,
13443
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1779 WC_TOOLBAR_MENU, WC_CLIENT_LIST,
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1780 WDF_STD_TOOLTIPS | WDF_DEF_WIDGET,
13564
bae287664b02 (svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents: 13556
diff changeset
1781 _nested_client_list_popup_widgets, lengthof(_nested_client_list_popup_widgets)
13443
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1782 );
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
1783
11368
82c90cd591ab (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents: 11361
diff changeset
1784 /* Finds the Xth client-info that is active */
11578
494219bd4418 (svn r15947) -Codechange: replace uint32 client_ip with NetworkAddress client_address.
rubidium <rubidium@openttd.org>
parents: 11565
diff changeset
1785 static NetworkClientInfo *NetworkFindClientInfo(byte client_no)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1786 {
11578
494219bd4418 (svn r15947) -Codechange: replace uint32 client_ip with NetworkAddress client_address.
rubidium <rubidium@openttd.org>
parents: 11565
diff changeset
1787 NetworkClientInfo *ci;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1788
10464
34c23056ba1d (svn r14719) -Codechange: replace DEREF_CLIENT with an instance function and replace looping socket structs with info structs when the loop is only interested in the info structs (i.e. not derefing the info from sockets when one can loop info directly and the socket isn't used)
rubidium <rubidium@openttd.org>
parents: 10457
diff changeset
1789 FOR_ALL_CLIENT_INFOS(ci) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1790 if (client_no == 0) return ci;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1791 client_no--;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1792 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1793
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1794 return NULL;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1795 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1796
11368
82c90cd591ab (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents: 11361
diff changeset
1797 /* Here we start to define the options out of the menu */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1798 static void ClientList_Kick(byte client_no)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1799 {
11279
2f792e7a69dd (svn r15628) -Fix [FS#2705]: kicking/banning a client from the Client list window crashed the server
smatz <smatz@openttd.org>
parents: 11256
diff changeset
1800 const NetworkClientInfo *ci = NetworkFindClientInfo(client_no);
2f792e7a69dd (svn r15628) -Fix [FS#2705]: kicking/banning a client from the Client list window crashed the server
smatz <smatz@openttd.org>
parents: 11256
diff changeset
1801
2f792e7a69dd (svn r15628) -Fix [FS#2705]: kicking/banning a client from the Client list window crashed the server
smatz <smatz@openttd.org>
parents: 11256
diff changeset
1802 if (ci == NULL) return;
2f792e7a69dd (svn r15628) -Fix [FS#2705]: kicking/banning a client from the Client list window crashed the server
smatz <smatz@openttd.org>
parents: 11256
diff changeset
1803
2f792e7a69dd (svn r15628) -Fix [FS#2705]: kicking/banning a client from the Client list window crashed the server
smatz <smatz@openttd.org>
parents: 11256
diff changeset
1804 NetworkServerKickClient(ci->client_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
1805 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1806
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1807 static void ClientList_Ban(byte client_no)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1808 {
11578
494219bd4418 (svn r15947) -Codechange: replace uint32 client_ip with NetworkAddress client_address.
rubidium <rubidium@openttd.org>
parents: 11565
diff changeset
1809 NetworkClientInfo *ci = NetworkFindClientInfo(client_no);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1810
11279
2f792e7a69dd (svn r15628) -Fix [FS#2705]: kicking/banning a client from the Client list window crashed the server
smatz <smatz@openttd.org>
parents: 11256
diff changeset
1811 if (ci == 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
1812
11279
2f792e7a69dd (svn r15628) -Fix [FS#2705]: kicking/banning a client from the Client list window crashed the server
smatz <smatz@openttd.org>
parents: 11256
diff changeset
1813 NetworkServerBanIP(GetClientIP(ci));
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1814 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1815
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1816 static void ClientList_GiveMoney(byte client_no)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1817 {
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1818 if (NetworkFindClientInfo(client_no) != NULL) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1819 ShowNetworkGiveMoneyWindow(NetworkFindClientInfo(client_no)->client_playas);
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1820 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1821 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1822
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1823 static void ClientList_SpeakToClient(byte client_no)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1824 {
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1825 if (NetworkFindClientInfo(client_no) != NULL) {
10454
789e66340e43 (svn r14709) -Codechange: make a clearer distinction between 'unique' client identification ids and the indices into the clients/client info arrays.
rubidium <rubidium@openttd.org>
parents: 10337
diff changeset
1826 ShowNetworkChatQueryWindow(DESTTYPE_CLIENT, NetworkFindClientInfo(client_no)->client_id);
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1827 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1828 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1829
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1830 static void ClientList_SpeakToCompany(byte client_no)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1831 {
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1832 if (NetworkFindClientInfo(client_no) != NULL) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1833 ShowNetworkChatQueryWindow(DESTTYPE_TEAM, NetworkFindClientInfo(client_no)->client_playas);
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1834 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1835 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1836
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1837 static void ClientList_SpeakToAll(byte client_no)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1838 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1839 ShowNetworkChatQueryWindow(DESTTYPE_BROADCAST, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1840 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1841
13442
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1842 /** Popup selection window to chose an action to perform */
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1843 struct NetworkClientListPopupWindow : Window {
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1844 /** Container for actions that can be executed. */
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1845 struct ClientListAction {
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1846 StringID name; ///< Name of the action to execute
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1847 ClientList_Action_Proc *proc; ///< Action to execute
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1848 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1849
13442
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1850 uint sel_index;
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1851 int client_no;
13443
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1852 Point desired_location;
13442
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1853 SmallVector<ClientListAction, 2> actions; ///< Actions to execute
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1854
13442
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1855 /**
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1856 * Add an action to the list of actions to execute.
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1857 * @param name the name of the action
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1858 * @param proc the procedure to execute for the action
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1859 */
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1860 inline void AddAction(StringID name, ClientList_Action_Proc *proc)
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1861 {
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1862 ClientListAction *action = this->actions.Append();
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1863 action->name = name;
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1864 action->proc = proc;
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1865 }
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1866
13443
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1867 NetworkClientListPopupWindow(const WindowDesc *desc, int x, int y, int client_no) :
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1868 Window(),
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1869 sel_index(0), client_no(client_no)
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1870 {
13443
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1871 this->desired_location.x = x;
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1872 this->desired_location.y = y;
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1873
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1874 const NetworkClientInfo *ci = NetworkFindClientInfo(client_no);
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1875
10454
789e66340e43 (svn r14709) -Codechange: make a clearer distinction between 'unique' client identification ids and the indices into the clients/client info arrays.
rubidium <rubidium@openttd.org>
parents: 10337
diff changeset
1876 if (_network_own_client_id != ci->client_id) {
13442
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1877 this->AddAction(STR_NETWORK_CLIENTLIST_SPEAK_TO_CLIENT, &ClientList_SpeakToClient);
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1878 }
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1879
11924
fccc9cea27a7 (svn r16327) -Codechange: replace IsValidPoolItemID(index) by PoolItem::IsValidID(index)
smatz <smatz@openttd.org>
parents: 11888
diff changeset
1880 if (Company::IsValidID(ci->client_playas) || ci->client_playas == COMPANY_SPECTATOR) {
13442
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1881 this->AddAction(STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY, &ClientList_SpeakToCompany);
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1882 }
13442
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1883 this->AddAction(STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL, &ClientList_SpeakToAll);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1884
10454
789e66340e43 (svn r14709) -Codechange: make a clearer distinction between 'unique' client identification ids and the indices into the clients/client info arrays.
rubidium <rubidium@openttd.org>
parents: 10337
diff changeset
1885 if (_network_own_client_id != ci->client_id) {
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10180
diff changeset
1886 /* We are no spectator and the company we want to give money to is no spectator and money gifts are allowed */
11956
6ec97548e188 (svn r16360) -Codechange: don't use _network_playas as a 'second' _local_company, but only as a storage location for the company you want to join in MP.
rubidium <rubidium@openttd.org>
parents: 11924
diff changeset
1887 if (Company::IsValidID(_local_company) && Company::IsValidID(ci->client_playas) && _settings_game.economy.give_money) {
13442
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1888 this->AddAction(STR_NETWORK_CLIENTLIST_GIVE_MONEY, &ClientList_GiveMoney);
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1889 }
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1890 }
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1891
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1892 /* A server can kick clients (but not himself) */
10454
789e66340e43 (svn r14709) -Codechange: make a clearer distinction between 'unique' client identification ids and the indices into the clients/client info arrays.
rubidium <rubidium@openttd.org>
parents: 10337
diff changeset
1893 if (_network_server && _network_own_client_id != ci->client_id) {
13442
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1894 this->AddAction(STR_NETWORK_CLIENTLIST_KICK, &ClientList_Kick);
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1895 this->AddAction(STR_NETWORK_CLIENTLIST_BAN, &ClientList_Ban);
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1896 }
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1897
13443
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1898 this->flags4 &= ~WF_WHITE_BORDER_MASK;
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1899 this->InitNested(desc, 0);
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1900 }
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1901
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1902 virtual Point OnInitialPosition(const WindowDesc *desc, int16 sm_width, int16 sm_height, int window_number)
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1903 {
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1904 return this->desired_location;
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1905 }
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1906
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1907 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *resize)
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1908 {
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1909 Dimension d = *size;
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1910 for (const ClientListAction *action = this->actions.Begin(); action != this->actions.End(); action++) {
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1911 d = maxdim(GetStringBoundingBox(action->name), d);
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1912 }
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1913
13443
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1914 d.height *= this->actions.Length();
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1915 d.width += WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT;
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1916 d.height += WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1917 *size = d;
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1918 }
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1919
13443
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1920 virtual void DrawWidget(const Rect &r, int widget) const
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1921 {
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1922 /* Draw the actions */
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1923 int sel = this->sel_index;
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1924 int y = r.top + WD_FRAMERECT_TOP;
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1925 for (const ClientListAction *action = this->actions.Begin(); action != this->actions.End(); action++, y += FONT_HEIGHT_NORMAL) {
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1926 TextColour colour;
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1927 if (sel-- == 0) { // Selected item, highlight it
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1928 GfxFillRect(r.left + 1, y, r.right - 1, y + FONT_HEIGHT_NORMAL - 1, 0);
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1929 colour = TC_WHITE;
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1930 } else {
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1931 colour = TC_BLACK;
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1932 }
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1933
13443
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1934 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, action->name, colour);
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1935 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1936 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1937
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1938 virtual void OnPaint()
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1939 {
9273
72a6d2e60834 (svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents: 9269
diff changeset
1940 this->DrawWidgets();
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1941 }
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1942
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1943 virtual void OnMouseLoop()
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1944 {
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1945 /* We selected an action */
13442
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1946 uint index = (_cursor.pos.y - this->top - WD_FRAMERECT_TOP) / FONT_HEIGHT_NORMAL;
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1947
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1948 if (_left_button_down) {
13442
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1949 if (index == this->sel_index || index >= this->actions.Length()) return;
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1950
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1951 this->sel_index = index;
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1952 this->SetDirty();
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1953 } else {
13442
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1954 if (index < this->actions.Length() && _cursor.pos.y >= this->top) {
53a39cddf2be (svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents: 13439
diff changeset
1955 this->actions[index].proc(this->client_no);
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1956 }
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1957
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1958 DeleteWindowById(WC_TOOLBAR_MENU, 0);
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1959 }
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1960 }
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1961 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1962
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1963 /**
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1964 * Show the popup (action list)
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
1965 */
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1966 static void PopupClientList(int client_no, int x, int y)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1967 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1968 DeleteWindowById(WC_TOOLBAR_MENU, 0);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1969
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
1970 if (NetworkFindClientInfo(client_no) == 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
1971
13443
6bfe74de8027 (svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents: 13442
diff changeset
1972 new NetworkClientListPopupWindow(&_client_list_popup_desc, x, y, client_no);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1973 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1974
13437
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1975
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1976 /** Widget numbers of the client list window. */
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1977 enum ClientListWidgets {
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1978 CLW_CLOSE,
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1979 CLW_CAPTION,
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1980 CLW_STICKY,
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1981 CLW_PANEL,
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1982 };
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1983
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1984 static const NWidgetPart _nested_client_list_widgets[] = {
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1985 NWidget(NWID_HORIZONTAL),
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1986 NWidget(WWT_CLOSEBOX, COLOUR_GREY, CLW_CLOSE),
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1987 NWidget(WWT_CAPTION, COLOUR_GREY, CLW_CAPTION), SetDataTip(STR_NETWORK_COMPANY_LIST_CLIENT_LIST, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1988 NWidget(WWT_STICKYBOX, COLOUR_GREY, CLW_STICKY),
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1989 EndContainer(),
13439
0e90ffa69389 (svn r17948) -Codechange: remove some magic numbers from the network client list GUIs / use ResizeWindow instead of custom resize code.
rubidium <rubidium@openttd.org>
parents: 13437
diff changeset
1990 NWidget(WWT_PANEL, COLOUR_GREY, CLW_PANEL), SetMinimalSize(250, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM), SetResize(1, 1), EndContainer(),
13437
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1991 };
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1992
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1993 static const WindowDesc _client_list_desc(
13628
2123810ad874 (svn r18152) -Codechange: remove the 'minimum window size' from the WindowDesc; it's determined from the (nested) widgets
rubidium <rubidium@openttd.org>
parents: 13602
diff changeset
1994 WDP_AUTO, WDP_AUTO, 250, 16,
13437
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1995 WC_CLIENT_LIST, WC_NONE,
13439
0e90ffa69389 (svn r17948) -Codechange: remove some magic numbers from the network client list GUIs / use ResizeWindow instead of custom resize code.
rubidium <rubidium@openttd.org>
parents: 13437
diff changeset
1996 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON | WDF_RESIZABLE,
13564
bae287664b02 (svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents: 13556
diff changeset
1997 _nested_client_list_widgets, lengthof(_nested_client_list_widgets)
13437
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1998 );
1ab8e5dfef6c (svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents: 13396
diff changeset
1999
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
2000 /**
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
2001 * Main handle for clientlist
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
2002 */
13439
0e90ffa69389 (svn r17948) -Codechange: remove some magic numbers from the network client list GUIs / use ResizeWindow instead of custom resize code.
rubidium <rubidium@openttd.org>
parents: 13437
diff changeset
2003 struct NetworkClientListWindow : Window {
10473
38aa7533364f (svn r14728) -Fix [FS#2470]: don't select anything when opening the client list.
rubidium <rubidium@openttd.org>
parents: 10467
diff changeset
2004 int selected_item;
13445
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2005
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2006 uint server_client_width;
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2007 uint company_icon_width;
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
2008
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2009 NetworkClientListWindow(const WindowDesc *desc, WindowNumber window_number) :
13445
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2010 Window(),
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2011 selected_item(-1)
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2012 {
13445
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2013 this->InitNested(desc, window_number);
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2014 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2015
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2016 /**
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2017 * Finds the amount of clients and set the height correct
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2018 */
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2019 bool CheckClientListHeight()
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2020 {
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2021 int num = 0;
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2022 const NetworkClientInfo *ci;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2023
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2024 /* Should be replaced with a loop through all clients */
10464
34c23056ba1d (svn r14719) -Codechange: replace DEREF_CLIENT with an instance function and replace looping socket structs with info structs when the loop is only interested in the info structs (i.e. not derefing the info from sockets when one can loop info directly and the socket isn't used)
rubidium <rubidium@openttd.org>
parents: 10457
diff changeset
2025 FOR_ALL_CLIENT_INFOS(ci) {
10473
38aa7533364f (svn r14728) -Fix [FS#2470]: don't select anything when opening the client list.
rubidium <rubidium@openttd.org>
parents: 10467
diff changeset
2026 if (ci->client_playas != COMPANY_INACTIVE_CLIENT) num++;
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2027 }
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2028
13439
0e90ffa69389 (svn r17948) -Codechange: remove some magic numbers from the network client list GUIs / use ResizeWindow instead of custom resize code.
rubidium <rubidium@openttd.org>
parents: 13437
diff changeset
2029 num *= FONT_HEIGHT_NORMAL;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2030
13445
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2031 int diff = (num + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM) - (this->GetWidget<NWidgetBase>(CLW_PANEL)->current_y);
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2032 /* If height is changed */
13439
0e90ffa69389 (svn r17948) -Codechange: remove some magic numbers from the network client list GUIs / use ResizeWindow instead of custom resize code.
rubidium <rubidium@openttd.org>
parents: 13437
diff changeset
2033 if (diff != 0) {
0e90ffa69389 (svn r17948) -Codechange: remove some magic numbers from the network client list GUIs / use ResizeWindow instead of custom resize code.
rubidium <rubidium@openttd.org>
parents: 13437
diff changeset
2034 ResizeWindow(this, 0, diff);
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2035 return false;
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2036 }
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2037 return true;
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2038 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
2039
13445
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2040 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *resize)
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2041 {
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2042 if (widget != CLW_PANEL) return;
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2043
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2044 this->server_client_width = max(GetStringBoundingBox(STR_NETWORK_SERVER).width, GetStringBoundingBox(STR_NETWORK_CLIENT).width) + WD_FRAMERECT_RIGHT;
13446
37fb6e7b7eb9 (svn r17955) -Codechange: s/SPR_PLAYER_ICON/SPR_COMPANY_ICON/
rubidium <rubidium@openttd.org>
parents: 13445
diff changeset
2045 this->company_icon_width = GetSpriteSize(SPR_COMPANY_ICON).width + WD_FRAMERECT_LEFT;
13445
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2046
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2047 uint width = 200; // Default width
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2048 const NetworkClientInfo *ci;
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2049 FOR_ALL_CLIENT_INFOS(ci) {
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2050 width = max(width, GetStringBoundingBox(ci->client_name).width);
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2051 }
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2052
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2053 size->width = WD_FRAMERECT_LEFT + this->server_client_width + this->company_icon_width + WD_FRAMERECT_RIGHT;
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2054 }
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2055
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2056 virtual void OnPaint()
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2057 {
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2058 /* Check if we need to reset the height */
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2059 if (!this->CheckClientListHeight()) return;
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2060
9273
72a6d2e60834 (svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents: 9269
diff changeset
2061 this->DrawWidgets();
13445
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2062 }
8738
723631ab4868 (svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents: 8737
diff changeset
2063
13445
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2064 virtual void DrawWidget(const Rect &r, int widget) const
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2065 {
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2066 if (widget != CLW_PANEL) return;
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2067
13651
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2068 bool rtl = _dynlang.text_dir == TD_RTL;
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2069 uint y = r.top + WD_FRAMERECT_TOP;
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2070 uint left = r.left + WD_FRAMERECT_LEFT;
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2071 uint right = r.right - WD_FRAMERECT_RIGHT;
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2072 uint type_icon_width = this->server_client_width + this->company_icon_width;
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2073
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2074
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2075 uint type_left = rtl ? right - this->server_client_width : left;
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2076 uint type_right = rtl ? right : left + this->server_client_width - 1;
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2077 uint icon_left = rtl ? right - type_icon_width + WD_FRAMERECT_LEFT : left + this->server_client_width;
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2078 uint name_left = rtl ? left : left + type_icon_width;
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2079 uint name_right = rtl ? right - type_icon_width : right;
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2080
13445
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2081 int i = 0;
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2082 const NetworkClientInfo *ci;
10464
34c23056ba1d (svn r14719) -Codechange: replace DEREF_CLIENT with an instance function and replace looping socket structs with info structs when the loop is only interested in the info structs (i.e. not derefing the info from sockets when one can loop info directly and the socket isn't used)
rubidium <rubidium@openttd.org>
parents: 10457
diff changeset
2083 FOR_ALL_CLIENT_INFOS(ci) {
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2084 TextColour colour;
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2085 if (this->selected_item == i++) { // Selected item, highlight it
13445
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2086 GfxFillRect(r.left + 1, y, r.right - 1, y + FONT_HEIGHT_NORMAL - 1, 0);
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2087 colour = TC_WHITE;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2088 } else {
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2089 colour = TC_BLACK;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2090 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2091
10454
789e66340e43 (svn r14709) -Codechange: make a clearer distinction between 'unique' client identification ids and the indices into the clients/client info arrays.
rubidium <rubidium@openttd.org>
parents: 10337
diff changeset
2092 if (ci->client_id == CLIENT_ID_SERVER) {
13651
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2093 DrawString(type_left, type_right, y, STR_NETWORK_SERVER, colour);
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2094 } else {
13651
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2095 DrawString(type_left, type_right, y, STR_NETWORK_CLIENT, colour);
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2096 }
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2097
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2098 /* Filter out spectators */
13651
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2099 if (Company::IsValidID(ci->client_playas)) DrawCompanyIcon(ci->client_playas, icon_left, y + 1);
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2100
13651
5a604d7988c1 (svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents: 13628
diff changeset
2101 DrawString(name_left, name_right, y, ci->client_name, colour);
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2102
13439
0e90ffa69389 (svn r17948) -Codechange: remove some magic numbers from the network client list GUIs / use ResizeWindow instead of custom resize code.
rubidium <rubidium@openttd.org>
parents: 13437
diff changeset
2103 y += FONT_HEIGHT_NORMAL;
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2104 }
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2105 }
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2106
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2107 virtual void OnClick(Point pt, int widget)
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2108 {
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2109 /* Show the popup with option */
10473
38aa7533364f (svn r14728) -Fix [FS#2470]: don't select anything when opening the client list.
rubidium <rubidium@openttd.org>
parents: 10467
diff changeset
2110 if (this->selected_item != -1) {
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2111 PopupClientList(this->selected_item, pt.x + this->left, pt.y + this->top);
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2112 }
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2113 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2114
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2115 virtual void OnMouseOver(Point pt, int widget)
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2116 {
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2117 /* -1 means we left the current window */
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2118 if (pt.y == -1) {
10473
38aa7533364f (svn r14728) -Fix [FS#2470]: don't select anything when opening the client list.
rubidium <rubidium@openttd.org>
parents: 10467
diff changeset
2119 this->selected_item = -1;
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2120 this->SetDirty();
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2121 return;
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2122 }
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2123
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2124 /* Find the new selected item (if any) */
13445
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2125 pt.y -= this->GetWidget<NWidgetBase>(CLW_PANEL)->pos_y;
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2126 int item = -1;
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2127 if (IsInsideMM(pt.y, WD_FRAMERECT_TOP, this->GetWidget<NWidgetBase>(CLW_PANEL)->current_y - WD_FRAMERECT_BOTTOM)) {
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2128 item = (pt.y - WD_FRAMERECT_TOP) / FONT_HEIGHT_NORMAL;
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2129 }
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2130
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2131 /* It did not change.. no update! */
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2132 if (item == this->selected_item) return;
c38047a5bdfb (svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents: 13443
diff changeset
2133 this->selected_item = item;
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2134
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2135 /* Repaint */
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2136 this->SetDirty();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2137 }
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2138 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2139
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 5916
diff changeset
2140 void ShowClientList()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2141 {
9242
b400b0761465 (svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents: 9241
diff changeset
2142 AllocateWindowDescFront<NetworkClientListWindow>(&_client_list_desc, 0);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2143 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2144
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2145
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2146 static NetworkPasswordType pw_type;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2147
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2148
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2149 void ShowNetworkNeedPassword(NetworkPasswordType npt)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2150 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2151 StringID caption;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2152
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2153 pw_type = npt;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2154 switch (npt) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2155 default: NOT_REACHED();
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2156 case NETWORK_GAME_PASSWORD: caption = STR_NETWORK_NEED_GAME_PASSWORD_CAPTION; break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2157 case NETWORK_COMPANY_PASSWORD: caption = STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION; break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2158 }
10145
dbe302da93a8 (svn r14331) -Codechange: use an enum as additional parameter for ShowQueryString()
smatz <smatz@openttd.org>
parents: 10061
diff changeset
2159 ShowQueryString(STR_EMPTY, caption, 20, 180, FindWindowById(WC_NETWORK_STATUS_WINDOW, 0), CS_ALPHANUMERAL, QSF_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
2160 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2161
11368
82c90cd591ab (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents: 11361
diff changeset
2162 /* Vars needed for the join-GUI */
9428
ba7cdcf21f4c (svn r13343) -Codechange: reorder/move variable/functions in the network headers so that nothing from the network directory needs to include basically all network headers.
rubidium <rubidium@openttd.org>
parents: 9420
diff changeset
2163 NetworkJoinStatus _network_join_status;
ba7cdcf21f4c (svn r13343) -Codechange: reorder/move variable/functions in the network headers so that nothing from the network directory needs to include basically all network headers.
rubidium <rubidium@openttd.org>
parents: 9420
diff changeset
2164 uint8 _network_join_waiting;
10771
44e71a85349d (svn r15104) -Codechange: unify the resolving of the xyz kbytes/megabytes strings.
rubidium <rubidium@openttd.org>
parents: 10696
diff changeset
2165 uint32 _network_join_bytes;
44e71a85349d (svn r15104) -Codechange: unify the resolving of the xyz kbytes/megabytes strings.
rubidium <rubidium@openttd.org>
parents: 10696
diff changeset
2166 uint32 _network_join_bytes_total;
9428
ba7cdcf21f4c (svn r13343) -Codechange: reorder/move variable/functions in the network headers so that nothing from the network directory needs to include basically all network headers.
rubidium <rubidium@openttd.org>
parents: 9420
diff changeset
2167
11430
c1e93c7799b6 (svn r15788) -Codechange: enumify the network join status widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
2168 /** Widgets used for the join status window. */
c1e93c7799b6 (svn r15788) -Codechange: enumify the network join status widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
2169 enum NetworkJoinStatusWidgets {
c1e93c7799b6 (svn r15788) -Codechange: enumify the network join status widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
2170 NJSW_CAPTION, ///< Caption of the window
c1e93c7799b6 (svn r15788) -Codechange: enumify the network join status widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
2171 NJSW_BACKGROUND, ///< Background
c1e93c7799b6 (svn r15788) -Codechange: enumify the network join status widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
2172 NJSW_CANCELOK, ///< Cancel/OK button
c1e93c7799b6 (svn r15788) -Codechange: enumify the network join status widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
2173 };
c1e93c7799b6 (svn r15788) -Codechange: enumify the network join status widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
2174
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2175 struct NetworkJoinStatusWindow : Window {
13449
a59eb51c3f11 (svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents: 13446
diff changeset
2176 NetworkJoinStatusWindow(const WindowDesc *desc) : Window()
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2177 {
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2178 this->parent = FindWindowById(WC_NETWORK_WINDOW, 0);
13449
a59eb51c3f11 (svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents: 13446
diff changeset
2179 this->InitNested(desc, 0);
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2180 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2181
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2182 virtual void OnPaint()
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2183 {
13449
a59eb51c3f11 (svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents: 13446
diff changeset
2184 this->DrawWidgets();
a59eb51c3f11 (svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents: 13446
diff changeset
2185 }
a59eb51c3f11 (svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents: 13446
diff changeset
2186
a59eb51c3f11 (svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents: 13446
diff changeset
2187 virtual void DrawWidget(const Rect &r, int widget) const
a59eb51c3f11 (svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents: 13446
diff changeset
2188 {
a59eb51c3f11 (svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents: 13446
diff changeset
2189 if (widget != NJSW_BACKGROUND) return;
a59eb51c3f11 (svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents: 13446
diff changeset
2190
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2191 uint8 progress; // used for progress bar
13449
a59eb51c3f11 (svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents: 13446
diff changeset
2192 DrawString(r.left + 2, r.right - 2, r.top + 20, STR_NETWORK_CONNECTING_1 + _network_join_status, TC_FROMSTRING, SA_CENTER);
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2193 switch (_network_join_status) {
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2194 case NETWORK_JOIN_STATUS_CONNECTING: case NETWORK_JOIN_STATUS_AUTHORIZING:
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2195 case NETWORK_JOIN_STATUS_GETTING_COMPANY_INFO:
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2196 progress = 10; // first two stages 10%
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2197 break;
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2198 case NETWORK_JOIN_STATUS_WAITING:
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2199 SetDParam(0, _network_join_waiting);
13449
a59eb51c3f11 (svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents: 13446
diff changeset
2200 DrawString(r.left + 2, r.right - 2, r.top + 20 + FONT_HEIGHT_NORMAL, STR_NETWORK_CONNECTING_WAITING, TC_FROMSTRING, SA_CENTER);
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2201 progress = 15; // third stage is 15%
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2202 break;
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2203 case NETWORK_JOIN_STATUS_DOWNLOADING:
10771
44e71a85349d (svn r15104) -Codechange: unify the resolving of the xyz kbytes/megabytes strings.
rubidium <rubidium@openttd.org>
parents: 10696
diff changeset
2204 SetDParam(0, _network_join_bytes);
44e71a85349d (svn r15104) -Codechange: unify the resolving of the xyz kbytes/megabytes strings.
rubidium <rubidium@openttd.org>
parents: 10696
diff changeset
2205 SetDParam(1, _network_join_bytes_total);
13449
a59eb51c3f11 (svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents: 13446
diff changeset
2206 DrawString(r.left + 2, r.right - 2, r.top + 20 + FONT_HEIGHT_NORMAL, STR_NETWORK_CONNECTING_DOWNLOADING, TC_FROMSTRING, SA_CENTER);
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2207 /* Fallthrough */
11368
82c90cd591ab (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents: 11361
diff changeset
2208 default: // Waiting is 15%, so the resting receivement of map is maximum 70%
10771
44e71a85349d (svn r15104) -Codechange: unify the resolving of the xyz kbytes/megabytes strings.
rubidium <rubidium@openttd.org>
parents: 10696
diff changeset
2209 progress = 15 + _network_join_bytes * (100 - 15) / _network_join_bytes_total;
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2210 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2211
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2212 /* Draw nice progress bar :) */
13449
a59eb51c3f11 (svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents: 13446
diff changeset
2213 DrawFrameRect(r.left + 20, r.top + 5, (int)((this->width - 20) * progress / 100), r.top + 15, COLOUR_MAUVE, FR_NONE);
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2214 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2215
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2216 virtual void OnClick(Point pt, int widget)
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2217 {
11430
c1e93c7799b6 (svn r15788) -Codechange: enumify the network join status widgets and use them.
rubidium <rubidium@openttd.org>
parents: 11427
diff changeset
2218 if (widget == NJSW_CANCELOK) { // Disconnect button
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2219 NetworkDisconnect();
11223
4928ebb36453 (svn r15576) -Codechange: rename SwitchModes to SwitchMode and don't hardcode the values for that enum.
yexo <yexo@openttd.org>
parents: 11218
diff changeset
2220 SwitchToMode(SM_MENU);
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2221 ShowNetworkGameWindow();
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2222 }
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2223 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2224
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2225 virtual void OnQueryTextFinished(char *str)
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2226 {
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2227 if (StrEmpty(str)) {
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2228 NetworkDisconnect();
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2229 ShowNetworkGameWindow();
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2230 } else {
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2231 SEND_COMMAND(PACKET_CLIENT_PASSWORD)(pw_type, str);
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2232 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2233 }
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2234 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2235
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2236 static const NWidgetPart _nested_network_join_status_window_widgets[] = {
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
2237 NWidget(WWT_CAPTION, COLOUR_GREY, NJSW_CAPTION), SetDataTip(STR_NETWORK_CONNECTING_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2238 NWidget(WWT_PANEL, COLOUR_GREY, NJSW_BACKGROUND),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
2239 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NJSW_CANCELOK), SetMinimalSize(101, 12), SetPadding(55, 74, 4, 75), SetDataTip(STR_NETWORK_CONNECTION_DISCONNECT, STR_NULL),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2240 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2241 };
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2242
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11368
diff changeset
2243 static const WindowDesc _network_join_status_window_desc(
13628
2123810ad874 (svn r18152) -Codechange: remove the 'minimum window size' from the WindowDesc; it's determined from the (nested) widgets
rubidium <rubidium@openttd.org>
parents: 13602
diff changeset
2244 WDP_CENTER, WDP_CENTER, 250, 85,
5893
8547517ef719 (svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents: 5669
diff changeset
2245 WC_NETWORK_STATUS_WINDOW, WC_NONE,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2246 WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_MODAL,
13564
bae287664b02 (svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents: 13556
diff changeset
2247 _nested_network_join_status_window_widgets, lengthof(_nested_network_join_status_window_widgets)
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11368
diff changeset
2248 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2249
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 5916
diff changeset
2250 void ShowJoinStatusWindow()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2251 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2252 DeleteWindowById(WC_NETWORK_STATUS_WINDOW, 0);
9269
9ba3a5bccb10 (svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents: 9242
diff changeset
2253 new NetworkJoinStatusWindow(&_network_join_status_window_desc);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2254 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2255
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2256
7998
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2257 /** Enum for NetworkGameWindow, referring to _network_game_window_widgets */
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2258 enum NetworkCompanyPasswordWindowWidgets {
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2259 NCPWW_CLOSE, ///< Close 'X' button
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2260 NCPWW_CAPTION, ///< Caption of the whole window
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2261 NCPWW_BACKGROUND, ///< The background of the interface
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2262 NCPWW_LABEL, ///< Label in front of the password field
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2263 NCPWW_PASSWORD, ///< Input field for the password
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2264 NCPWW_SAVE_AS_DEFAULT_PASSWORD, ///< Toggle 'button' for saving the current password as default password
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2265 NCPWW_CANCEL, ///< Close the window without changing anything
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2266 NCPWW_OK, ///< Safe the password etc.
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2267 };
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2268
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2269 struct NetworkCompanyPasswordWindow : public QueryStringBaseWindow {
13367
4f4c452950cc (svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
2270 NetworkCompanyPasswordWindow(const WindowDesc *desc, Window *parent) : QueryStringBaseWindow(lengthof(_settings_client.network.default_company_pass))
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2271 {
13367
4f4c452950cc (svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
2272 this->InitNested(desc, 0);
4f4c452950cc (svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
2273
9241
8299dc138e1c (svn r13107) -Codechange: make NetworkCompanyPasswordWindow and SelectPlayerFaceWindow children of PlayerCompanyWindow.
glx <glx@openttd.org>
parents: 9182
diff changeset
2274 this->parent = parent;
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2275 this->afilter = CS_ALPHANUMERAL;
9897
5b558ce6cb0e (svn r14046) -Codechange: make the size of querystring "widgets" more configurable.
rubidium <rubidium@openttd.org>
parents: 9827
diff changeset
2276 InitializeTextBuffer(&this->text, this->edit_str_buf, this->edit_str_size, 0);
11081
0a26df8849a2 (svn r15424) -Codechange: make it possible to have multiple windows with edit box open simultaniously (Zuu).
rubidium <rubidium@openttd.org>
parents: 11069
diff changeset
2277 this->SetFocusedWidget(NCPWW_PASSWORD);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2278 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2279
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2280 void OnOk()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2281 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2282 if (this->IsWidgetLowered(NCPWW_SAVE_AS_DEFAULT_PASSWORD)) {
9420
ec47ec544964 (svn r13334) -Codechange: move the network settings variables from network/network_internal to settings.
rubidium <rubidium@openttd.org>
parents: 9416
diff changeset
2283 snprintf(_settings_client.network.default_company_pass, lengthof(_settings_client.network.default_company_pass), "%s", this->edit_str_buf);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2284 }
7998
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2285
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2286 /* empty password is a '*' because of console argument */
9897
5b558ce6cb0e (svn r14046) -Codechange: make the size of querystring "widgets" more configurable.
rubidium <rubidium@openttd.org>
parents: 9827
diff changeset
2287 if (StrEmpty(this->edit_str_buf)) snprintf(this->edit_str_buf, this->edit_str_size, "*");
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2288 char *password = this->edit_str_buf;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2289 NetworkChangeCompanyPassword(1, &password);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2290 }
7998
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2291
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2292 virtual void OnPaint()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2293 {
9273
72a6d2e60834 (svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents: 9269
diff changeset
2294 this->DrawWidgets();
13041
c00a3e3c405b (svn r17539) -Codechange: Replace a magic number.
frosch <frosch@openttd.org>
parents: 13034
diff changeset
2295 this->DrawEditBox(NCPWW_PASSWORD);
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2296 }
7998
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2297
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2298 virtual void OnClick(Point pt, int widget)
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2299 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2300 switch (widget) {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2301 case NCPWW_OK:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2302 this->OnOk();
7998
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2303
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2304 /* FALL THROUGH */
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2305 case NCPWW_CANCEL:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2306 delete this;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2307 break;
7998
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2308
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2309 case NCPWW_SAVE_AS_DEFAULT_PASSWORD:
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2310 this->ToggleWidgetLoweredState(NCPWW_SAVE_AS_DEFAULT_PASSWORD);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2311 this->SetDirty();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2312 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2313 }
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2314 }
7998
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2315
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2316 virtual void OnMouseLoop()
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2317 {
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2318 this->HandleEditBox(4);
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2319 }
8087
4537e595b8b6 (svn r11648) -Fix [FS#1560]: the company password was not set when one pressed the enter key.
rubidium <rubidium@openttd.org>
parents: 8082
diff changeset
2320
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9274
diff changeset
2321 virtual EventState OnKeyPress(uint16 key, uint16 keycode)
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2322 {
11319
340c5c4473f7 (svn r15669) -Change: Key presses that are not handles by an input box are no longer marked as handled but given to other OnKeyPress handlers. This makes the global shortcuts like F1 work again when an input box is open.
yexo <yexo@openttd.org>
parents: 11279
diff changeset
2323 EventState state = ES_NOT_HANDLED;
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9274
diff changeset
2324 switch (this->HandleEditBoxKey(4, key, keycode, state)) {
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10292
diff changeset
2325 default: break;
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10292
diff changeset
2326
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10292
diff changeset
2327 case HEBR_CONFIRM:
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2328 this->OnOk();
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2329 /* FALL THROUGH */
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2330
10295
7ebf43f7c36b (svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents: 10292
diff changeset
2331 case HEBR_CANCEL:
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2332 delete this;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2333 break;
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2334 }
9285
3b3f13cb6db6 (svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium <rubidium@openttd.org>
parents: 9274
diff changeset
2335 return state;
7998
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2336 }
10547
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10480
diff changeset
2337
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10480
diff changeset
2338 virtual void OnOpenOSKWindow(int wid)
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10480
diff changeset
2339 {
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10480
diff changeset
2340 ShowOnScreenKeyboard(this, wid, NCPWW_CANCEL, NCPWW_OK);
0b7be1ee92c5 (svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents: 10480
diff changeset
2341 }
9179
3b7b689031d6 (svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents: 9178
diff changeset
2342 };
7998
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2343
13367
4f4c452950cc (svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
2344 static const NWidgetPart _nested_network_company_password_window_widgets[] = {
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2345 NWidget(NWID_HORIZONTAL),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2346 NWidget(WWT_CLOSEBOX, COLOUR_GREY, NCPWW_CLOSE),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2347 NWidget(WWT_CAPTION, COLOUR_GREY, NCPWW_CAPTION), SetDataTip(STR_COMPANY_PASSWORD_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2348 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2349 NWidget(WWT_PANEL, COLOUR_GREY, NCPWW_BACKGROUND),
13367
4f4c452950cc (svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
2350 NWidget(NWID_VERTICAL), SetPIP(5, 5, 5),
4f4c452950cc (svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
2351 NWidget(NWID_HORIZONTAL), SetPIP(5, 5, 5),
4f4c452950cc (svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
2352 NWidget(WWT_TEXT, COLOUR_GREY, NCPWW_LABEL), SetDataTip(STR_COMPANY_VIEW_PASSWORD, STR_NULL),
4f4c452950cc (svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
2353 NWidget(WWT_EDITBOX, COLOUR_GREY, NCPWW_PASSWORD), SetMinimalSize(194, 12), SetDataTip(STR_COMPANY_VIEW_SET_PASSWORD, STR_NULL),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2354 EndContainer(),
13367
4f4c452950cc (svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
2355 NWidget(NWID_HORIZONTAL), SetPIP(5, 0, 5),
4f4c452950cc (svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
2356 NWidget(NWID_SPACER), SetFill(true, false),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2357 NWidget(WWT_TEXTBTN, COLOUR_GREY, NCPWW_SAVE_AS_DEFAULT_PASSWORD), SetMinimalSize(194, 12),
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12619
diff changeset
2358 SetDataTip(STR_COMPANY_PASSWORD_MAKE_DEFAULT, STR_COMPANY_PASSWORD_MAKE_DEFAULT_TOOLTIP),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2359 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2360 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2361 EndContainer(),
13367
4f4c452950cc (svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
2362 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
4f4c452950cc (svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
2363 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, NCPWW_CANCEL), SetFill(true, false), SetDataTip(STR_BUTTON_CANCEL, STR_COMPANY_PASSWORD_CANCEL),
4f4c452950cc (svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
2364 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, NCPWW_OK), SetFill(true, false), SetDataTip(STR_BUTTON_OK, STR_COMPANY_PASSWORD_OK),
11847
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2365 EndContainer(),
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2366 };
add0648f33b0 (svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents: 11846
diff changeset
2367
13367
4f4c452950cc (svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
2368 static const WindowDesc _network_company_password_window_desc(
13628
2123810ad874 (svn r18152) -Codechange: remove the 'minimum window size' from the WindowDesc; it's determined from the (nested) widgets
rubidium <rubidium@openttd.org>
parents: 13602
diff changeset
2369 WDP_AUTO, WDP_AUTO, 300, 63,
7998
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2370 WC_COMPANY_PASSWORD_WINDOW, WC_NONE,
8019
9e262ce81acf (svn r11579) -Revert(r11578): some cases of key propagation are not handled correctly.
belugas <belugas@openttd.org>
parents: 8018
diff changeset
2371 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON,
13564
bae287664b02 (svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents: 13556
diff changeset
2372 _nested_network_company_password_window_widgets, lengthof(_nested_network_company_password_window_widgets)
11373
474ba6cc0946 (svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents: 11368
diff changeset
2373 );
7998
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2374
9241
8299dc138e1c (svn r13107) -Codechange: make NetworkCompanyPasswordWindow and SelectPlayerFaceWindow children of PlayerCompanyWindow.
glx <glx@openttd.org>
parents: 9182
diff changeset
2375 void ShowNetworkCompanyPasswordWindow(Window *parent)
7998
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2376 {
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2377 DeleteWindowById(WC_COMPANY_PASSWORD_WINDOW, 0);
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2378
13367
4f4c452950cc (svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
2379 new NetworkCompanyPasswordWindow(&_network_company_password_window_desc, parent);
7998
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2380 }
c23b6367e55b (svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents: 7997
diff changeset
2381
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2382 #endif /* ENABLE_NETWORK */