Mercurial > hg > openttd
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 |
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 */ |