Mercurial > hg > openttd
annotate src/network/network_gui.cpp @ 17579:105b4e4eb168 draft
(svn r22343) -Change: Remove pixel limiter for query strings.
author | terkhen <terkhen@openttd.org> |
---|---|
date | Sun, 17 Apr 2011 18:42:17 +0000 |
parents | b50ba9cf01a9 |
children | fc000097d463 |
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" |
8114
2d6af5d7a142
(svn r11675) -Codechange: split the string types from the string functions.
rubidium <rubidium@openttd.org>
parents:
8107
diff
changeset
|
14 #include "../strings_func.h" |
8140
fb8a05d579da
(svn r11702) -Codechange: move all date related stuff to date*.
rubidium <rubidium@openttd.org>
parents:
8131
diff
changeset
|
15 #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
|
16 #include "../fios.h" |
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 "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
|
18 #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
|
19 #include "network_gamelist.h" |
14258
a899d4e5ee1a
(svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header
rubidium <rubidium@openttd.org>
parents:
14098
diff
changeset
|
20 #include "network.h" |
a899d4e5ee1a
(svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header
rubidium <rubidium@openttd.org>
parents:
14098
diff
changeset
|
21 #include "network_base.h" |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
22 #include "../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" |
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
|
29 #include "../company_func.h" |
14258
a899d4e5ee1a
(svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header
rubidium <rubidium@openttd.org>
parents:
14098
diff
changeset
|
30 #include "../core/geometry_func.hpp" |
16004
4a8f77ed75bc
(svn r20692) -Fix [FS#4055]: crash after downloading missing content
yexo <yexo@openttd.org>
parents:
15944
diff
changeset
|
31 #include "../newgrf_text.h" |
17154
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
32 #include "../genworld.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
|
33 |
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
|
34 #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
|
35 #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
|
36 |
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 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
5916
diff
changeset
|
38 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
|
39 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
|
40 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
|
41 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
42 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
|
43 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
|
44 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
|
45 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
|
46 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
47 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
48 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
|
49 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
|
50 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
|
51 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
|
52 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
53 |
6796
fe8894bfa8ab
(svn r10035) -Change: simplified network language string sorting
glx <glx@openttd.org>
parents:
6793
diff
changeset
|
54 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
|
55 |
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
|
56 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
|
57 { |
6796
fe8894bfa8ab
(svn r10035) -Change: simplified network language string sorting
glx <glx@openttd.org>
parents:
6793
diff
changeset
|
58 /* Init the strings */ |
fe8894bfa8ab
(svn r10035) -Change: simplified network language string sorting
glx <glx@openttd.org>
parents:
6793
diff
changeset
|
59 if (_language_dropdown[0] == STR_NULL) { |
fe8894bfa8ab
(svn r10035) -Change: simplified network language string sorting
glx <glx@openttd.org>
parents:
6793
diff
changeset
|
60 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
|
61 _language_dropdown[NETLANG_COUNT] = INVALID_STRING_ID; |
fe8894bfa8ab
(svn r10035) -Change: simplified network language string sorting
glx <glx@openttd.org>
parents:
6793
diff
changeset
|
62 } |
6793
30657c4af0fb
(svn r10032) -Add: sort the strings in server language dropdown
glx <glx@openttd.org>
parents:
6780
diff
changeset
|
63 |
6796
fe8894bfa8ab
(svn r10035) -Change: simplified network language string sorting
glx <glx@openttd.org>
parents:
6793
diff
changeset
|
64 /* Sort the strings (we don't move 'any' and the 'invalid' one) */ |
17179
80f000454062
(svn r21918) -Fix [FS#4443]: Languages improperly sorted in the "start server" window (adf88)
rubidium <rubidium@openttd.org>
parents:
17154
diff
changeset
|
65 QSortT(_language_dropdown + 1, NETLANG_COUNT - 1, &StringIDSorter); |
6793
30657c4af0fb
(svn r10032) -Add: sort the strings in server language dropdown
glx <glx@openttd.org>
parents:
6780
diff
changeset
|
66 } |
6780
05ca25dd9fa4
(svn r10017) -Add (FS#790): more languages flags for servers
glx <glx@openttd.org>
parents:
6531
diff
changeset
|
67 |
15620
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
68 /** |
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
69 * Update the network new window because a new server is |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
70 * found on the network. |
15623
c62577640878
(svn r20286) -Codechange: Unify end of doxygen comments.
frosch <frosch@openttd.org>
parents:
15620
diff
changeset
|
71 * @param unselect unselect the currently selected item |
c62577640878
(svn r20286) -Codechange: Unify end of doxygen comments.
frosch <frosch@openttd.org>
parents:
15620
diff
changeset
|
72 */ |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
73 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
|
74 { |
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
|
75 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
|
76 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
77 |
7960
d91d1077e1ce
(svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents:
7959
diff
changeset
|
78 /** 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
|
79 enum NetworkGameWindowWidgets { |
11374
f58902ec450d
(svn r15724) -Codechange: some widget documentation/fixing of enumified constant names (Alberth)
rubidium <rubidium@openttd.org>
parents:
11373
diff
changeset
|
80 NGWW_MAIN, ///< Main panel |
7960
d91d1077e1ce
(svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents:
7959
diff
changeset
|
81 |
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_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
|
83 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
|
84 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
|
85 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
|
86 |
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
|
87 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
|
88 NGWW_NAME, ///< 'Name' button |
7960
d91d1077e1ce
(svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents:
7959
diff
changeset
|
89 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
|
90 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
|
91 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
|
92 NGWW_YEARS, ///< 'Years' button |
7960
d91d1077e1ce
(svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents:
7959
diff
changeset
|
93 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
|
94 |
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
|
95 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
|
96 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
|
97 |
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
|
98 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
|
99 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
|
100 |
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_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
|
102 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
|
103 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
|
104 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
|
105 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
|
106 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
|
107 |
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
|
108 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
|
109 NGWW_ADD, ///< 'Add server' button |
d91d1077e1ce
(svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents:
7959
diff
changeset
|
110 NGWW_START, ///< 'Start server' button |
d91d1077e1ce
(svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents:
7959
diff
changeset
|
111 NGWW_CANCEL, ///< 'Cancel' button |
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); |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
127 leaf->SetFill(1, 0); |
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
|
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); |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
137 leaf->SetFill(0, 1); |
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
|
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. |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
152 this->fill_x = 1; |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
153 this->fill_y = 0; |
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
|
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 |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
258 Scrollbar *vscroll; |
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
|
259 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 /** |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 * (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
|
262 * 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
|
263 */ |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
265 { |
9414
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
266 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
|
267 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
268 /* 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
|
269 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
|
270 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
271 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
|
272 *this->servers.Append() = ngl; |
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
273 } |
7960
d91d1077e1ce
(svn r11516) -Codechange: cleanup of NetworkGameWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents:
7959
diff
changeset
|
274 |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
275 this->servers.Compact(); |
9414
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
276 this->servers.RebuildDone(); |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
277 this->vscroll->SetCount(this->servers.Length()); |
9414
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
278 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
279 |
9414
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
280 /** Sort servers by name. */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10641
diff
changeset
|
281 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
|
282 { |
16614
1111794047a4
(svn r21344) -Feature [FS#4214]: Natural sorting of strings using ICU.
terkhen <terkhen@openttd.org>
parents:
16601
diff
changeset
|
283 return strnatcmp((*a)->info.server_name, (*b)->info.server_name); // Sort by name (natural sorting). |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
284 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
285 |
15620
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
286 /** |
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
287 * Sort servers by the amount of clients online on a |
9414
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
288 * server. If the two servers have the same amount, the one with the |
15623
c62577640878
(svn r20286) -Codechange: Unify end of doxygen comments.
frosch <frosch@openttd.org>
parents:
15620
diff
changeset
|
289 * higher maximum is preferred. |
c62577640878
(svn r20286) -Codechange: Unify end of doxygen comments.
frosch <frosch@openttd.org>
parents:
15620
diff
changeset
|
290 */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10641
diff
changeset
|
291 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
|
292 { |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
293 /* 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
|
294 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
|
295 |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
296 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
|
297 if (r == 0) r = NGameNameSorter(a, b); |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
298 |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
299 return r; |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
300 } |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
301 |
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
|
302 /** Sort servers by map size */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10641
diff
changeset
|
303 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
|
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 /* 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
|
306 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
|
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 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
|
309 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
|
310 } |
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 /** Sort servers by current date */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10641
diff
changeset
|
313 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
|
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 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
|
316 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
|
317 } |
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 /** 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
|
320 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
|
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 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
|
323 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
|
324 } |
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
|
325 |
15620
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
326 /** |
f8e9a3f0c140
(svn r20283) -Codechange: Unify start of doygen comments.
frosch <frosch@openttd.org>
parents:
15618
diff
changeset
|
327 * Sort servers by joinability. If both servers are the |
15623
c62577640878
(svn r20286) -Codechange: Unify end of doxygen comments.
frosch <frosch@openttd.org>
parents:
15620
diff
changeset
|
328 * same, prefer the non-passworded server first. |
c62577640878
(svn r20286) -Codechange: Unify end of doxygen comments.
frosch <frosch@openttd.org>
parents:
15620
diff
changeset
|
329 */ |
10647
592ae9307430
(svn r14949) -Cleanup: pointer coding style
rubidium <rubidium@openttd.org>
parents:
10641
diff
changeset
|
330 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
|
331 { |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
332 /* 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
|
333 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
|
334 |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
335 /* 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
|
336 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
|
337 /* 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
|
338 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
|
339 /* Passworded servers should be below unpassworded servers */ |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
340 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
|
341 /* 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
|
342 if (r == 0) r = NGameNameSorter(a, b); |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
343 |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
344 return r; |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
345 } |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
346 |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
347 /** 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
|
348 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
|
349 { |
17351
327a87c574a4
(svn r22093) -Fix [FS#4514]: The server list did not get sorted with one item in it, so the "position in the list" variable was never updated causing problems when using the keyboard shortcuts for scrolling
rubidium <rubidium@openttd.org>
parents:
17290
diff
changeset
|
350 bool did_sort = this->servers.Sort(); |
327a87c574a4
(svn r22093) -Fix [FS#4514]: The server list did not get sorted with one item in it, so the "position in the list" variable was never updated causing problems when using the keyboard shortcuts for scrolling
rubidium <rubidium@openttd.org>
parents:
17290
diff
changeset
|
351 /* In case of 0 or 1 servers there is no sorting, thus this->list_pos |
327a87c574a4
(svn r22093) -Fix [FS#4514]: The server list did not get sorted with one item in it, so the "position in the list" variable was never updated causing problems when using the keyboard shortcuts for scrolling
rubidium <rubidium@openttd.org>
parents:
17290
diff
changeset
|
352 * isn't set to a "sane" value. So, we only take the short way out |
327a87c574a4
(svn r22093) -Fix [FS#4514]: The server list did not get sorted with one item in it, so the "position in the list" variable was never updated causing problems when using the keyboard shortcuts for scrolling
rubidium <rubidium@openttd.org>
parents:
17290
diff
changeset
|
353 * when we did not (re)sort and we have a valid this->list_pos, or |
327a87c574a4
(svn r22093) -Fix [FS#4514]: The server list did not get sorted with one item in it, so the "position in the list" variable was never updated causing problems when using the keyboard shortcuts for scrolling
rubidium <rubidium@openttd.org>
parents:
17290
diff
changeset
|
354 * there are no servers to actually select. */ |
327a87c574a4
(svn r22093) -Fix [FS#4514]: The server list did not get sorted with one item in it, so the "position in the list" variable was never updated causing problems when using the keyboard shortcuts for scrolling
rubidium <rubidium@openttd.org>
parents:
17290
diff
changeset
|
355 if (!did_sort && (this->list_pos != SLP_INVALID || this->servers.Length() == 0)) 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
|
356 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 /* 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
|
358 * 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
|
359 * 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
|
360 * 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
|
361 this->list_pos = SLP_INVALID; |
9365
5a3d3513930c
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138 <peter1138@openttd.org>
parents:
9354
diff
changeset
|
362 _network_game_list = this->servers[0]; |
9414
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
363 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
|
364 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
|
365 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
|
366 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
|
367 item = item->next; |
10279
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
368 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
|
369 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
371 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
372 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
373 /** |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 * 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
|
375 * @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
|
376 * @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
|
377 * @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
|
378 */ |
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
|
379 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
|
380 { |
13695
75560523443c
(svn r18220) -Codechange: Reduce number of nested widget dynamic casts.
alberth <alberth@openttd.org>
parents:
13694
diff
changeset
|
381 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
|
382 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
|
383 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
384 /* 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
|
385 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
|
386 |
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
|
387 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
|
388 |
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
|
389 /* 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
|
390 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
|
391 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
|
392 |
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
|
393 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
|
394 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
|
395 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
|
396 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
|
397 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
|
398 SetDParam(3, cur_item->info.companies_max); |
15400
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15382
diff
changeset
|
399 DrawString(nwi_clients->pos_x, nwi_clients->pos_x + nwi_clients->current_x - 1, y, STR_NETWORK_SERVER_LIST_GENERAL_ONLINE, TC_FROMSTRING, SA_HOR_CENTER); |
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 } |
c50ed98b49ff
(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 |
c50ed98b49ff
(svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents:
13378
diff
changeset
|
402 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
|
403 /* map size */ |
13695
75560523443c
(svn r18220) -Codechange: Reduce number of nested widget dynamic casts.
alberth <alberth@openttd.org>
parents:
13694
diff
changeset
|
404 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
|
405 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
|
406 SetDParam(1, cur_item->info.map_height); |
15400
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15382
diff
changeset
|
407 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_HOR_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
|
408 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
409 |
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
|
410 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
|
411 /* current date */ |
13695
75560523443c
(svn r18220) -Codechange: Reduce number of nested widget dynamic casts.
alberth <alberth@openttd.org>
parents:
13694
diff
changeset
|
412 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
|
413 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
|
414 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
|
415 SetDParam(0, ymd.year); |
15400
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15382
diff
changeset
|
416 DrawString(nwi_date->pos_x, nwi_date->pos_x + nwi_date->current_x - 1, y, STR_JUST_INT, TC_BLACK, SA_HOR_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 |
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
|
419 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
|
420 /* 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
|
421 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
|
422 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
|
423 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
|
424 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
|
425 SetDParam(0, ymd_cur.year - ymd_start.year); |
15400
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15382
diff
changeset
|
426 DrawString(nwi_years->pos_x, nwi_years->pos_x + nwi_years->current_x - 1, y, STR_JUST_INT, TC_BLACK, SA_HOR_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
|
427 } |
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
|
428 |
13693
a41d4d5669ba
(svn r18218) -Codechange: make a few network windows big font aware
rubidium <rubidium@openttd.org>
parents:
13688
diff
changeset
|
429 /* Align the sprites */ |
a41d4d5669ba
(svn r18218) -Codechange: make a few network windows big font aware
rubidium <rubidium@openttd.org>
parents:
13688
diff
changeset
|
430 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
|
431 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 /* 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
|
433 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
|
434 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
435 /* 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
|
436 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
|
437 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
438 /* 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
|
439 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
|
440 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
441 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
442 |
10279
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
443 /** |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
444 * 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
|
445 * 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
|
446 * 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
|
447 * 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
|
448 * 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
|
449 */ |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
450 void ScrollToSelectedServer() |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
451 { |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
452 if (this->list_pos == SLP_INVALID) return; // no server selected |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
453 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
|
454 } |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
455 |
9414
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
456 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
|
457 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
|
458 { |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
459 this->CreateNestedTree(desc); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
460 this->vscroll = this->GetScrollbar(NGWW_SCROLLBAR); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
461 this->FinishInitNested(desc, 0); |
11462
043d6b6bf604
(svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents:
11454
diff
changeset
|
462 |
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
|
463 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
|
464 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
|
465 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
|
466 this->SetFocusedWidget(NGWW_CLIENT); |
9414
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
467 |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
468 UpdateNetworkGameWindow(true); |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
469 |
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
|
470 this->field = NGWW_CLIENT; |
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
|
471 this->last_joined = NetworkGameListAddItem(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port)); |
14035
1017887e1560
(svn r18578) -Feature: initially select the last joined server when going to the server list
rubidium <rubidium@openttd.org>
parents:
13879
diff
changeset
|
472 this->server = this->last_joined; |
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
|
473 |
9414
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
474 this->servers.SetListing(this->last_sorting); |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
475 this->servers.SetSortFuncs(this->sorter_funcs); |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
476 this->servers.ForceRebuild(); |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
477 this->SortNetworkGameList(); |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
478 } |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
479 |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
480 ~NetworkGameWindow() |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
481 { |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
482 this->last_sorting = this->servers.GetListing(); |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
483 } |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
484 |
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
|
485 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
|
486 { |
c50ed98b49ff
(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 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
|
488 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
|
489 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
|
490 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
|
491 } |
c50ed98b49ff
(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 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
494 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
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
|
495 { |
c50ed98b49ff
(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 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
|
497 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
|
498 *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
|
499 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
|
500 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
|
501 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
|
502 |
c50ed98b49ff
(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 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
|
504 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
|
505 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
|
506 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
|
507 |
c50ed98b49ff
(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 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
|
509 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
|
510 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
|
511 |
c50ed98b49ff
(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 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
|
513 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
|
514 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
|
515 |
c50ed98b49ff
(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 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
|
517 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
|
518 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
|
519 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
|
520 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
|
521 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
|
522 *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
|
523 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
|
524 |
c50ed98b49ff
(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 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
|
526 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
|
527 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
|
528 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
|
529 *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
|
530 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
|
531 |
c50ed98b49ff
(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 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
|
533 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
|
534 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
|
535 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
|
536 *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
|
537 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
|
538 |
c50ed98b49ff
(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 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
|
540 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
|
541 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
|
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 } |
c50ed98b49ff
(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 |
c50ed98b49ff
(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 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
|
546 { |
c50ed98b49ff
(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 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
|
548 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
|
549 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
|
550 |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
551 const int max = min(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), (int)this->servers.Length()); |
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
|
552 |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
553 for (int i = this->vscroll->GetPosition(); i < max; ++i) { |
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
|
554 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
|
555 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
|
556 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
|
557 } |
15618
e4640748f223
(svn r20281) -Codechange: unify case scope closure + break coding style
rubidium <rubidium@openttd.org>
parents:
15579
diff
changeset
|
558 break; |
e4640748f223
(svn r20281) -Codechange: unify case scope closure + break coding style
rubidium <rubidium@openttd.org>
parents:
15579
diff
changeset
|
559 } |
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
|
560 |
c50ed98b49ff
(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_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
|
562 /* 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
|
563 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
|
564 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
|
565 |
c50ed98b49ff
(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 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
|
567 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
|
568 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
|
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 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
|
571 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
|
572 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
|
573 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
|
574 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
|
575 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
|
576 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
|
577 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
|
578 } |
c50ed98b49ff
(svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents:
13378
diff
changeset
|
579 } |
c50ed98b49ff
(svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents:
13378
diff
changeset
|
580 |
c50ed98b49ff
(svn r17905) -Codechange: make the network server list window nested (and increase the default size slightly)
rubidium <rubidium@openttd.org>
parents:
13378
diff
changeset
|
581 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
583 { |
9414
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
584 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
|
585 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
|
586 } |
9414
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
587 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
|
588 |
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
|
589 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
|
590 /* '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
|
591 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
|
592 /* '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
|
593 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
|
594 !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
|
595 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
|
596 !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
|
597 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
598 /* '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
|
599 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
|
600 |
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
|
601 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
|
602 /* 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
|
603 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
|
604 } |
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 |
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 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
|
607 { |
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 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
|
609 |
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
|
610 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
|
611 |
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
|
612 /* 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
|
613 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
|
614 if (sel == NULL) { |
15400
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15382
diff
changeset
|
615 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_HOR_CENTER); |
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
|
616 } else if (!sel->online) { |
15400
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15382
diff
changeset
|
617 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_HOR_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
|
618 |
15400
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15382
diff
changeset
|
619 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_HOR_CENTER); // server offline |
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
|
620 } 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
|
621 |
15400
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15382
diff
changeset
|
622 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + 6, STR_NETWORK_SERVER_LIST_GAME_INFO, TC_FROMSTRING, SA_HOR_CENTER); |
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15382
diff
changeset
|
623 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_HOR_CENTER); // game name |
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15382
diff
changeset
|
624 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_HOR_CENTER); // map name |
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 |
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 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
|
627 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
628 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
|
629 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
|
630 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
|
631 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
|
632 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
|
633 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
|
634 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
635 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
|
636 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
|
637 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
|
638 |
12632
e41943276802
(svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents:
12619
diff
changeset
|
639 SetDParam(0, STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE + sel->info.map_set); |
14516
1ff472b546d8
(svn r19087) -Codechange: some typos in StringIDs
rubidium <rubidium@openttd.org>
parents:
14504
diff
changeset
|
640 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_LANDSCAPE); // landscape |
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
|
641 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
|
642 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
643 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
|
644 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
|
645 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
|
646 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
|
647 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
648 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
|
649 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
|
650 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
|
651 |
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
|
652 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
|
653 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
|
654 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
|
655 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
656 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
|
657 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
|
658 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
|
659 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
661 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
|
662 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
|
663 |
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
|
664 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
|
665 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 if (!sel->info.compatible) { |
15400
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15382
diff
changeset
|
667 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_HOR_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
|
668 } 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
|
669 /* Show: server full, when clients_on == max_clients */ |
15400
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15382
diff
changeset
|
670 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_SERVER_FULL, TC_FROMSTRING, SA_HOR_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
|
671 } else if (sel->info.use_password) { |
15400
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15382
diff
changeset
|
672 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_PASSWORD, TC_FROMSTRING, SA_HOR_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
|
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 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
675 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 |
14409
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14258
diff
changeset
|
677 virtual void OnClick(Point pt, int widget, int click_count) |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
678 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
680 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
|
681 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
|
682 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
|
683 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
|
684 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
685 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
|
686 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
|
687 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
|
688 |
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
|
689 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
|
690 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
|
691 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
|
692 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
|
693 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
|
694 case NGWW_INFO: // Connectivity (green dot) |
9414
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
695 if (this->servers.SortType() == widget - NGWW_NAME) { |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
696 this->servers.ToggleSortOrder(); |
10279
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
697 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
|
698 } else { |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
699 this->servers.SetSortType(widget - NGWW_NAME); |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
700 this->servers.ForceResort(); |
10279
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
701 this->SortNetworkGameList(); |
9414
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
702 } |
10279
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
703 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
|
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_MATRIX: { // Matrix to show networkgames |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
708 uint id_v = this->vscroll->GetScrolledRowFromWidget(pt.y, this, NGWW_MATRIX); |
9415
195a505bb0f4
(svn r13328) -Fix (r13327): Don't access an item when there isn't any
skidd13 <skidd13@openttd.org>
parents:
9414
diff
changeset
|
709 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
|
710 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
|
711 this->SetDirty(); |
14409
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14258
diff
changeset
|
712 |
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14258
diff
changeset
|
713 /* FIXME the disabling should go into some InvalidateData, which is called instead of the SetDirty */ |
14410
9a9236bf1a28
(svn r18967) -Fix (r18966): Never trust your copy&paste skills.
frosch <frosch@openttd.org>
parents:
14409
diff
changeset
|
714 if (click_count > 1 && !this->IsWidgetDisabled(NGWW_JOIN)) this->OnClick(pt, NGWW_JOIN, 1); |
15618
e4640748f223
(svn r20281) -Codechange: unify case scope closure + break coding style
rubidium <rubidium@openttd.org>
parents:
15579
diff
changeset
|
715 break; |
e4640748f223
(svn r20281) -Codechange: unify case scope closure + break coding style
rubidium <rubidium@openttd.org>
parents:
15579
diff
changeset
|
716 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
717 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
718 case NGWW_LASTJOINED: { |
11551
939f22f810ef
(svn r15916) -Codechange: let the network game list use NetworkAddress
rubidium <rubidium@openttd.org>
parents:
11524
diff
changeset
|
719 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
|
720 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
|
721 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
|
722 |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
723 /* 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
|
724 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
|
725 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
|
726 this->list_pos = i; |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
727 break; |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
728 } |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
729 } |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
730 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
|
731 this->SetDirty(); |
14409
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14258
diff
changeset
|
732 |
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14258
diff
changeset
|
733 /* FIXME the disabling should go into some InvalidateData, which is called instead of the SetDirty */ |
14410
9a9236bf1a28
(svn r18967) -Fix (r18966): Never trust your copy&paste skills.
frosch <frosch@openttd.org>
parents:
14409
diff
changeset
|
734 if (click_count > 1 && !this->IsWidgetDisabled(NGWW_JOIN)) this->OnClick(pt, NGWW_JOIN, 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
|
735 } |
15618
e4640748f223
(svn r20281) -Codechange: unify case scope closure + break coding style
rubidium <rubidium@openttd.org>
parents:
15579
diff
changeset
|
736 break; |
e4640748f223
(svn r20281) -Codechange: unify case scope closure + break coding style
rubidium <rubidium@openttd.org>
parents:
15579
diff
changeset
|
737 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
738 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
740 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
|
741 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
|
742 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
|
743 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
745 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
747 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
|
748 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
|
749 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
|
750 STR_NETWORK_SERVER_LIST_ENTER_IP, |
11860
ebf5beca420e
(svn r16254) -Fix [FS#2886]: Magic constant removed.
frosch <frosch@openttd.org>
parents:
11847
diff
changeset
|
751 NETWORK_HOSTNAME_LENGTH, // maximum number of characters including '\0' |
10145
dbe302da93a8
(svn r14331) -Codechange: use an enum as additional parameter for ShowQueryString()
smatz <smatz@openttd.org>
parents:
10061
diff
changeset
|
752 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
|
753 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
|
754 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
756 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
|
757 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
|
758 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
760 if (this->server != NULL) { |
11551
939f22f810ef
(svn r15916) -Codechange: let the network game list use NetworkAddress
rubidium <rubidium@openttd.org>
parents:
11524
diff
changeset
|
761 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
|
762 _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
|
763 ShowNetworkLobbyWindow(this->server); |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
764 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
765 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
|
766 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
767 case NGWW_REFRESH: // Refresh |
11551
939f22f810ef
(svn r15916) -Codechange: let the network game list use NetworkAddress
rubidium <rubidium@openttd.org>
parents:
11524
diff
changeset
|
768 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
|
769 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
|
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 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
|
772 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
|
773 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
|
774 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
775 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
777 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
|
778 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
780 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
|
781 _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
|
782 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
|
783 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
784 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
|
785 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
|
786 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
787 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
789 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
790 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
792 { |
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
|
793 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
|
794 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
795 |
17486
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17351
diff
changeset
|
796 /** |
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17351
diff
changeset
|
797 * Some data on this window has become invalid. |
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17351
diff
changeset
|
798 * @param data Information about the changed data. |
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17351
diff
changeset
|
799 * @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details. |
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17351
diff
changeset
|
800 */ |
e7672bafbe1c
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents:
17351
diff
changeset
|
801 virtual void OnInvalidateData(int data = 0, bool gui_scope = true) |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
802 { |
17290
720d5d9f8e20
(svn r22030) -Cleanup: dead code in NetworkGameWindow::OnInvalidateData (adf88)
rubidium <rubidium@openttd.org>
parents:
17179
diff
changeset
|
803 if (data == 1) { |
720d5d9f8e20
(svn r22030) -Cleanup: dead code in NetworkGameWindow::OnInvalidateData (adf88)
rubidium <rubidium@openttd.org>
parents:
17179
diff
changeset
|
804 this->server = NULL; |
720d5d9f8e20
(svn r22030) -Cleanup: dead code in NetworkGameWindow::OnInvalidateData (adf88)
rubidium <rubidium@openttd.org>
parents:
17179
diff
changeset
|
805 this->list_pos = SLP_INVALID; |
10279
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
806 } |
9414
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
807 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
|
808 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
|
809 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
810 |
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
|
811 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
|
812 { |
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
|
813 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
|
814 |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
815 /* 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
|
816 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
|
817 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
|
818 switch (keycode) { |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
819 case WKC_UP: |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
820 /* scroll up by one */ |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
821 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
|
822 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
|
823 break; |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
824 case WKC_DOWN: |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
825 /* scroll down by one */ |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
826 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
|
827 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
|
828 break; |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
829 case WKC_PAGEUP: |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
830 /* scroll up a page */ |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
831 if (this->server == NULL) return ES_HANDLED; |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
832 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
|
833 break; |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
834 case WKC_PAGEDOWN: |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
835 /* scroll down a page */ |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
836 if (this->server == NULL) return ES_HANDLED; |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
837 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
|
838 break; |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
839 case WKC_HOME: |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
840 /* jump to beginning */ |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
841 this->list_pos = 0; |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
842 break; |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
843 case WKC_END: |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
844 /* jump to end */ |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
845 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
|
846 break; |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
847 default: break; |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
848 } |
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
849 |
10641
94cbc9a0158b
(svn r14943) -Cleanup: remove some rogue spaces/replace some rogue tabs with spaces
rubidium <rubidium@openttd.org>
parents:
10559
diff
changeset
|
850 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
|
851 |
10641
94cbc9a0158b
(svn r14943) -Cleanup: remove some rogue spaces/replace some rogue tabs with spaces
rubidium <rubidium@openttd.org>
parents:
10559
diff
changeset
|
852 /* 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
|
853 this->ScrollToSelectedServer(); |
10279
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
854 |
10641
94cbc9a0158b
(svn r14943) -Cleanup: remove some rogue spaces/replace some rogue tabs with spaces
rubidium <rubidium@openttd.org>
parents:
10559
diff
changeset
|
855 /* redraw window */ |
94cbc9a0158b
(svn r14943) -Cleanup: remove some rogue spaces/replace some rogue tabs with spaces
rubidium <rubidium@openttd.org>
parents:
10559
diff
changeset
|
856 this->SetDirty(); |
94cbc9a0158b
(svn r14943) -Cleanup: remove some rogue spaces/replace some rogue tabs with spaces
rubidium <rubidium@openttd.org>
parents:
10559
diff
changeset
|
857 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
|
858 } |
10279
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
859 |
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
|
860 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
|
861 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
|
862 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
|
863 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
|
864 this->server = NULL; |
10279
63bfb33e1a12
(svn r14517) -Feature: arrow key scrolling in the server list (Roujin)
rubidium <rubidium@openttd.org>
parents:
10208
diff
changeset
|
865 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
|
866 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
867 } |
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
|
868 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
|
869 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
870 |
10295
7ebf43f7c36b
(svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents:
10292
diff
changeset
|
871 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
|
872 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
873 /* 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
|
874 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
|
875 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
|
876 } 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
|
877 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
|
878 } |
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
|
879 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
|
880 } |
7343
76fcc58cd6c7
(svn r10706) -Codechange: allow resizing the multiplayer server list window.
rubidium <rubidium@openttd.org>
parents:
7341
diff
changeset
|
881 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
883 { |
12543
ea54644136d4
(svn r16981) -Fix [FS#3062]: the last manually added server would not be saved
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
884 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
|
885 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
886 |
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
|
887 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
|
888 { |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
889 this->vscroll->SetCapacityFromWidget(this, NGWW_MATRIX); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
890 this->GetWidget<NWidgetCore>(NGWW_MATRIX)->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
|
891 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
893 |
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
|
894 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
|
895 GUIGameServerList::SortFunction * const NetworkGameWindow::sorter_funcs[] = { |
9414
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
896 &NGameNameSorter, |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
897 &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
|
898 &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
|
899 &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
|
900 &NGameYearsSorter, |
9414
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
901 &NGameAllowedSorter |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
902 }; |
ca0680949f89
(svn r13327) -Codechange: NetworkGameWindow uses GUILists Sort() now
skidd13 <skidd13@openttd.org>
parents:
9413
diff
changeset
|
903 |
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
|
904 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
|
905 { |
c50ed98b49ff
(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 *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
|
907 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
|
908 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
909 |
13096
e3e4c1648e0c
(svn r17596) -Codechange: constify some tables
smatz <smatz@openttd.org>
parents:
13041
diff
changeset
|
910 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
|
911 /* TOP */ |
043d6b6bf604
(svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents:
11454
diff
changeset
|
912 NWidget(NWID_HORIZONTAL), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
913 NWidget(WWT_CLOSEBOX, COLOUR_LIGHT_BLUE), |
14046
425d4e2d7cb7
(svn r18589) -Codechange: Add tooltip to some network windows, remove old comment.
alberth <alberth@openttd.org>
parents:
14037
diff
changeset
|
914 NWidget(WWT_CAPTION, COLOUR_LIGHT_BLUE), SetDataTip(STR_NETWORK_SERVER_LIST_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), |
11462
043d6b6bf604
(svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents:
11454
diff
changeset
|
915 EndContainer(), |
043d6b6bf604
(svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents:
11454
diff
changeset
|
916 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
|
917 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
|
918 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
|
919 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
|
920 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
|
921 SetDataTip(STR_BLACK_STRING, STR_NETWORK_SERVER_LIST_CONNECTION_TOOLTIP), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
922 NWidget(NWID_SPACER), SetFill(1, 0), SetResize(1, 0), |
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
|
923 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
|
924 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
|
925 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
|
926 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
|
927 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
|
928 /* 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
|
929 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
|
930 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
|
931 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
|
932 NWidgetFunction(MakeResizableHeader), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
933 NWidget(WWT_MATRIX, COLOUR_LIGHT_BLUE, NGWW_MATRIX), SetResize(1, 1), SetFill(1, 0), |
15778
4f4c3160cca8
(svn r20452) -Codechange: Remove NWidgetCore::FindScrollbar() and associate scrollbar explicitly using a NWidgetPart via SetScrollbar().
frosch <frosch@openttd.org>
parents:
15626
diff
changeset
|
934 SetDataTip(0, STR_NETWORK_SERVER_LIST_CLICK_GAME_TO_SELECT), SetScrollbar(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
|
935 EndContainer(), |
15787
6c4bec3b8401
(svn r20461) -Codechange: Replace WWT_HSCROLLBAR, WWT_SCROLLBAR and WWT_SCROLL2BAR with NWID_HSCROLLBAR and NWID_VSCROLLBAR.
frosch <frosch@openttd.org>
parents:
15779
diff
changeset
|
936 NWidget(NWID_VSCROLLBAR, 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
|
937 EndContainer(), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
938 NWidget(NWID_SPACER), SetMinimalSize(0, 7), SetResize(1, 0), SetFill(1, 1), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
939 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NGWW_LASTJOINED_LABEL), SetFill(1, 0), |
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
|
940 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
|
941 NWidget(NWID_HORIZONTAL), SetPIP(0, 0, WD_VSCROLLBAR_WIDTH), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
942 NWidget(WWT_PANEL, COLOUR_LIGHT_BLUE, NGWW_LASTJOINED), SetFill(1, 0), SetResize(1, 0), |
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 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
|
944 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
|
945 EndContainer(), |
11462
043d6b6bf604
(svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents:
11454
diff
changeset
|
946 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
|
947 /* 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
|
948 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
|
949 NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(5, 5, 5), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
950 NWidget(WWT_EMPTY, INVALID_COLOUR, NGWW_DETAILS_SPACER), SetMinimalSize(140, 155), SetResize(0, 1), SetFill(1, 1), // Make sure it's at least this wide |
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
|
951 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(5, 5, 5), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
952 NWidget(NWID_SPACER), SetFill(1, 0), |
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
|
953 NWidget(NWID_SELECTION, INVALID_COLOUR, NGWW_NEWGRF_SEL), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
954 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_NEWGRF), SetFill(1, 0), SetDataTip(STR_INTRO_NEWGRF_SETTINGS, STR_NULL), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
955 NWidget(NWID_SPACER), SetFill(1, 0), |
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
|
956 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
|
957 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
|
958 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(5, 5, 5), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
959 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_JOIN), SetFill(1, 0), SetDataTip(STR_NETWORK_SERVER_LIST_JOIN_GAME, STR_NULL), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
960 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_REFRESH), SetFill(1, 0), SetDataTip(STR_NETWORK_SERVER_LIST_REFRESH, STR_NETWORK_SERVER_LIST_REFRESH_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
|
961 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
|
962 EndContainer(), |
11462
043d6b6bf604
(svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents:
11454
diff
changeset
|
963 EndContainer(), |
043d6b6bf604
(svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents:
11454
diff
changeset
|
964 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
|
965 /* 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
|
966 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
|
967 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
|
968 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(10, 7, 4), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
969 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_FIND), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_NETWORK_SERVER_LIST_FIND_SERVER, STR_NETWORK_SERVER_LIST_FIND_SERVER_TOOLTIP), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
970 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_ADD), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_NETWORK_SERVER_LIST_ADD_SERVER, STR_NETWORK_SERVER_LIST_ADD_SERVER_TOOLTIP), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
971 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_START), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_NETWORK_SERVER_LIST_START_SERVER, STR_NETWORK_SERVER_LIST_START_SERVER_TOOLTIP), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
972 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_CANCEL), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_BUTTON_CANCEL, STR_NULL), |
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
|
973 EndContainer(), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
974 NWidget(NWID_SPACER), SetMinimalSize(0, 6), SetResize(1, 0), SetFill(1, 0), |
11462
043d6b6bf604
(svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents:
11454
diff
changeset
|
975 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
|
976 NWidget(NWID_VERTICAL), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
977 NWidget(NWID_SPACER), SetFill(0, 1), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
978 NWidget(WWT_RESIZEBOX, COLOUR_LIGHT_BLUE), |
11462
043d6b6bf604
(svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents:
11454
diff
changeset
|
979 EndContainer(), |
043d6b6bf604
(svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents:
11454
diff
changeset
|
980 EndContainer(), |
043d6b6bf604
(svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents:
11454
diff
changeset
|
981 EndContainer(), |
043d6b6bf604
(svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents:
11454
diff
changeset
|
982 EndContainer(), |
043d6b6bf604
(svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents:
11454
diff
changeset
|
983 }; |
043d6b6bf604
(svn r15820) -Codechange: Some windows using nested widgets
alberth <alberth@openttd.org>
parents:
11454
diff
changeset
|
984 |
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
|
985 static const WindowDesc _network_game_window_desc( |
13796
3e68f07eb821
(svn r18322) -Codechange: remove the WDP duplication; no need to tell the same twice.
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
986 WDP_CENTER, 1000, 730, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5669
diff
changeset
|
987 WC_NETWORK_WINDOW, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13726
diff
changeset
|
988 WDF_UNCLICK_BUTTONS, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13556
diff
changeset
|
989 _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
|
990 ); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
991 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
5916
diff
changeset
|
992 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
|
993 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
994 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
|
995 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
|
996 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
997 /* 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
|
998 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
|
999 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
|
1000 /* 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
|
1001 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
|
1002 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
|
1003 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1004 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1005 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1006 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
|
1007 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1008 |
7959
35aac28f0022
(svn r11515) -Codechange: cleanup of NetworkStartServerWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents:
7931
diff
changeset
|
1009 /** 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
|
1010 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
|
1011 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
|
1012 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
|
1013 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
|
1014 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
|
1015 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
|
1016 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
|
1017 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
|
1018 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
|
1019 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
|
1020 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
|
1021 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
|
1022 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
|
1023 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
|
1024 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
|
1025 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
|
1026 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
|
1027 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
|
1028 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
|
1029 |
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
|
1030 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
|
1031 NSSW_LANGUAGE_BTN, ///< 'Language spoken' droplist button |
17154
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1032 |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1033 NSSW_GENERATE_GAME, ///< New game button |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1034 NSSW_LOAD_GAME, ///< Load game button |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1035 NSSW_PLAY_SCENARIO, ///< Play scenario button |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1036 NSSW_PLAY_HEIGHTMAP, ///< Play heightmap button |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1037 |
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
|
1038 NSSW_CANCEL, ///< 'Cancel' button |
7959
35aac28f0022
(svn r11515) -Codechange: cleanup of NetworkStartServerWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents:
7931
diff
changeset
|
1039 }; |
35aac28f0022
(svn r11515) -Codechange: cleanup of NetworkStartServerWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents:
7931
diff
changeset
|
1040 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1041 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
|
1042 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
|
1043 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
|
1044 |
13377
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1045 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
|
1046 { |
13377
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1047 this->InitNested(desc, 0); |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1048 |
9897
5b558ce6cb0e
(svn r14046) -Codechange: make the size of querystring "widgets" more configurable.
rubidium <rubidium@openttd.org>
parents:
9827
diff
changeset
|
1049 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
|
1050 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1051 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
|
1052 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
|
1053 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
|
1054 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1055 this->field = NSSW_GAMENAME; |
13377
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1056 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1057 |
13377
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1058 virtual void SetStringParameters(int widget) const |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1059 { |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1060 switch (widget) { |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1061 case NSSW_CONNTYPE_BTN: |
13378
1d98fd82aa68
(svn r17887) -Codechange: remove some (now) unneeded {SKIP}s
rubidium <rubidium@openttd.org>
parents:
13377
diff
changeset
|
1062 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
|
1063 break; |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1064 |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1065 case NSSW_CLIENTS_TXT: |
13378
1d98fd82aa68
(svn r17887) -Codechange: remove some (now) unneeded {SKIP}s
rubidium <rubidium@openttd.org>
parents:
13377
diff
changeset
|
1066 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
|
1067 break; |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1068 |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1069 case NSSW_COMPANIES_TXT: |
13378
1d98fd82aa68
(svn r17887) -Codechange: remove some (now) unneeded {SKIP}s
rubidium <rubidium@openttd.org>
parents:
13377
diff
changeset
|
1070 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
|
1071 break; |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1072 |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1073 case NSSW_SPECTATORS_TXT: |
13378
1d98fd82aa68
(svn r17887) -Codechange: remove some (now) unneeded {SKIP}s
rubidium <rubidium@openttd.org>
parents:
13377
diff
changeset
|
1074 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
|
1075 break; |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1076 |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1077 case NSSW_LANGUAGE_BTN: |
13378
1d98fd82aa68
(svn r17887) -Codechange: remove some (now) unneeded {SKIP}s
rubidium <rubidium@openttd.org>
parents:
13377
diff
changeset
|
1078 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
|
1079 break; |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1080 } |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1081 } |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1082 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
1083 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
13377
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1084 { |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1085 switch (widget) { |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1086 case NSSW_CONNTYPE_BTN: |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1087 *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
|
1088 size->width += padding.width; |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1089 size->height += padding.height; |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1090 break; |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1091 } |
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 |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1094 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
|
1095 { |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1096 switch (widget) { |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1097 case NSSW_SETPWD: |
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1098 /* 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
|
1099 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
|
1100 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1101 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1102 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1103 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
|
1104 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1105 /* 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
|
1106 this->DrawWidgets(); |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1107 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1108 /* 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
|
1109 this->DrawEditBox(NSSW_GAMENAME); |
13377
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1110 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1111 |
14409
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14258
diff
changeset
|
1112 virtual void OnClick(Point pt, int widget, int click_count) |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1113 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1114 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
|
1115 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
|
1116 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
|
1117 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
|
1118 break; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1119 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1120 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
|
1121 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
|
1122 SetDParamStr(0, _settings_client.network.server_password); |
17579
105b4e4eb168
(svn r22343) -Change: Remove pixel limiter for query strings.
terkhen <terkhen@openttd.org>
parents:
17492
diff
changeset
|
1123 ShowQueryString(STR_JUST_RAW_STRING, STR_NETWORK_START_SERVER_SET_PASSWORD, 20, 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
|
1124 break; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1125 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1126 case NSSW_CONNTYPE_BTN: // Connection type |
9481
cbb53dc04d5b
(svn r13433) -Codechange: remove a now useless global variable.
rubidium <rubidium@openttd.org>
parents:
9462
diff
changeset
|
1127 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
|
1128 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
|
1129 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1130 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
|
1131 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
|
1132 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
|
1133 /* 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
|
1134 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
|
1135 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
|
1136 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
|
1137 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
|
1138 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
|
1139 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
|
1140 _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
|
1141 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
|
1142 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
|
1143 _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
|
1144 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
|
1145 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
|
1146 _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
|
1147 break; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1148 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1149 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1150 _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
|
1151 break; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1152 |
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
|
1153 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
|
1154 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
|
1155 SetDParam(0, _settings_client.network.max_clients); |
17579
105b4e4eb168
(svn r22343) -Change: Remove pixel limiter for query strings.
terkhen <terkhen@openttd.org>
parents:
17492
diff
changeset
|
1156 ShowQueryString(STR_JUST_INT, STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS, 4, 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
|
1157 break; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1158 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1159 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
|
1160 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
|
1161 SetDParam(0, _settings_client.network.max_companies); |
17579
105b4e4eb168
(svn r22343) -Change: Remove pixel limiter for query strings.
terkhen <terkhen@openttd.org>
parents:
17492
diff
changeset
|
1162 ShowQueryString(STR_JUST_INT, STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES, 3, 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
|
1163 break; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1164 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1165 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
|
1166 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
|
1167 SetDParam(0, _settings_client.network.max_spectators); |
17579
105b4e4eb168
(svn r22343) -Change: Remove pixel limiter for query strings.
terkhen <terkhen@openttd.org>
parents:
17492
diff
changeset
|
1168 ShowQueryString(STR_JUST_INT, STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS, 4, 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
|
1169 break; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1170 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1171 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
|
1172 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
|
1173 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
|
1174 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
|
1175 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
|
1176 break; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1177 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 ShowDropDownMenu(this, _language_dropdown, sel, NSSW_LANGUAGE_BTN, 0, 0); |
15618
e4640748f223
(svn r20281) -Codechange: unify case scope closure + break coding style
rubidium <rubidium@openttd.org>
parents:
15579
diff
changeset
|
1180 break; |
e4640748f223
(svn r20281) -Codechange: unify case scope closure + break coding style
rubidium <rubidium@openttd.org>
parents:
15579
diff
changeset
|
1181 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1182 |
17154
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1183 case NSSW_GENERATE_GAME: // Start game |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1184 _is_network_server = true; |
17154
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1185 if (_ctrl_pressed) { |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1186 StartNewGameWithoutGUI(GENERATE_NEW_SEED); |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1187 } else { |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1188 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
|
1189 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1190 break; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1191 |
17154
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1192 case NSSW_LOAD_GAME: |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1193 _is_network_server = true; |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1194 ShowSaveLoadDialog(SLD_LOAD_GAME); |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1195 break; |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1196 |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1197 case NSSW_PLAY_SCENARIO: |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1198 _is_network_server = true; |
17154
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1199 ShowSaveLoadDialog(SLD_LOAD_SCENARIO); |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1200 break; |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1201 |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1202 case NSSW_PLAY_HEIGHTMAP: |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1203 _is_network_server = true; |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1204 ShowSaveLoadDialog(SLD_LOAD_HEIGHTMAP); |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1205 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
|
1206 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1207 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1208 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1210 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1211 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
|
1212 case NSSW_CONNTYPE_BTN: |
9481
cbb53dc04d5b
(svn r13433) -Codechange: remove a now useless global variable.
rubidium <rubidium@openttd.org>
parents:
9462
diff
changeset
|
1213 _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
|
1214 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
|
1215 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
|
1216 _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
|
1217 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
|
1218 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
|
1219 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
|
1220 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1221 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1223 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1224 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1226 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1227 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
|
1228 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1229 |
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
|
1230 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
|
1231 { |
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
|
1232 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
|
1233 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
|
1234 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
|
1235 |
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
|
1236 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
|
1237 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1238 |
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
|
1239 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
|
1240 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1241 |
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
|
1242 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
|
1243 { |
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
|
1244 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
|
1245 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
|
1246 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
|
1247 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
|
1248 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
|
1249 } |
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
|
1250 } |
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
|
1251 } |
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
|
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 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
|
1254 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1255 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
|
1256 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
1258 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
|
1259 } 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
|
1260 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
|
1261 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
|
1262 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
|
1263 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
|
1264 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
|
1265 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
|
1266 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
|
1267 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1268 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1269 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 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
|
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 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1273 |
11847
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1274 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
|
1275 NWidget(NWID_HORIZONTAL), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
1276 NWidget(WWT_CLOSEBOX, COLOUR_LIGHT_BLUE), |
14046
425d4e2d7cb7
(svn r18589) -Codechange: Add tooltip to some network windows, remove old comment.
alberth <alberth@openttd.org>
parents:
14037
diff
changeset
|
1277 NWidget(WWT_CAPTION, COLOUR_LIGHT_BLUE), SetDataTip(STR_NETWORK_START_SERVER_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
|
1278 EndContainer(), |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1279 NWidget(WWT_PANEL, COLOUR_LIGHT_BLUE, NSSW_BACKGROUND), |
17154
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1280 NWidget(NWID_VERTICAL), SetPIP(10, 6, 10), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1281 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(10, 6, 10), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1282 NWidget(NWID_VERTICAL), SetPIP(0, 1, 0), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1283 /* Game name widgets */ |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1284 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NSSW_GAMENAME_LABEL), SetFill(1, 0), SetDataTip(STR_NETWORK_START_SERVER_NEW_GAME_NAME, STR_NULL), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1285 NWidget(WWT_EDITBOX, COLOUR_LIGHT_BLUE, NSSW_GAMENAME), SetMinimalSize(10, 12), SetFill(1, 0), SetDataTip(STR_NETWORK_START_SERVER_NEW_GAME_NAME_OSKTITLE, STR_NETWORK_START_SERVER_NEW_GAME_NAME_TOOLTIP), |
13377
8aa346820113
(svn r17886) -Codechange: make the 'start server' window nested
rubidium <rubidium@openttd.org>
parents:
13376
diff
changeset
|
1286 EndContainer(), |
17154
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1287 EndContainer(), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1288 |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1289 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(10, 6, 10), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1290 NWidget(NWID_VERTICAL), SetPIP(0, 1, 0), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1291 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NSSW_CONNTYPE_LABEL), SetFill(1, 0), SetDataTip(STR_NETWORK_SERVER_LIST_CONNECTION, STR_NULL), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1292 NWidget(WWT_DROPDOWN, COLOUR_LIGHT_BLUE, NSSW_CONNTYPE_BTN), SetFill(1, 0), SetDataTip(STR_BLACK_STRING, STR_NETWORK_SERVER_LIST_CONNECTION_TOOLTIP), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1293 EndContainer(), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1294 NWidget(NWID_VERTICAL), SetPIP(0, 1, 0), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1295 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NSSW_LANGUAGE_LABEL), SetFill(1, 0), SetDataTip(STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN, STR_NULL), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1296 NWidget(WWT_DROPDOWN, COLOUR_LIGHT_BLUE, NSSW_LANGUAGE_BTN), SetFill(1, 0), SetDataTip(STR_BLACK_STRING, STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1297 EndContainer(), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1298 NWidget(NWID_VERTICAL), SetPIP(0, 1, 0), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1299 NWidget(NWID_SPACER), SetFill(1, 1), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1300 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NSSW_SETPWD), SetFill(1, 0), 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
|
1301 EndContainer(), |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1302 EndContainer(), |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1303 |
17154
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1304 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(10, 6, 10), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1305 NWidget(NWID_VERTICAL), SetPIP(0, 1, 0), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1306 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NSSW_CLIENTS_LABEL), SetFill(1, 0), SetDataTip(STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS, STR_NULL), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1307 NWidget(NWID_HORIZONTAL), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1308 NWidget(WWT_IMGBTN, COLOUR_LIGHT_BLUE, NSSW_CLIENTS_BTND), SetMinimalSize(12, 12), SetFill(0, 1), SetDataTip(SPR_ARROW_DOWN, STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1309 NWidget(WWT_PUSHTXTBTN, COLOUR_LIGHT_BLUE, NSSW_CLIENTS_TXT), SetFill(1, 0), SetDataTip(STR_NETWORK_START_SERVER_CLIENTS_SELECT, STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1310 NWidget(WWT_IMGBTN, COLOUR_LIGHT_BLUE, NSSW_CLIENTS_BTNU), SetMinimalSize(12, 12), SetFill(0, 1), SetDataTip(SPR_ARROW_UP, STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1311 EndContainer(), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1312 EndContainer(), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1313 |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1314 NWidget(NWID_VERTICAL), SetPIP(0, 1, 0), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1315 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NSSW_COMPANIES_LABEL), SetFill(1, 0), SetDataTip(STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES, STR_NULL), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1316 NWidget(NWID_HORIZONTAL), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1317 NWidget(WWT_IMGBTN, COLOUR_LIGHT_BLUE, NSSW_COMPANIES_BTND), SetMinimalSize(12, 12), SetFill(0, 1), SetDataTip(SPR_ARROW_DOWN, STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1318 NWidget(WWT_PUSHTXTBTN, COLOUR_LIGHT_BLUE, NSSW_COMPANIES_TXT), SetFill(1, 0), SetDataTip(STR_NETWORK_START_SERVER_COMPANIES_SELECT, STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1319 NWidget(WWT_IMGBTN, COLOUR_LIGHT_BLUE, NSSW_COMPANIES_BTNU), SetMinimalSize(12, 12), SetFill(0, 1), SetDataTip(SPR_ARROW_UP, STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1320 EndContainer(), |
11847
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1321 EndContainer(), |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1322 |
17154
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1323 NWidget(NWID_VERTICAL), SetPIP(0, 1, 0), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1324 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NSSW_SPECTATORS_LABEL), SetFill(1, 0), SetDataTip(STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS, STR_NULL), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1325 NWidget(NWID_HORIZONTAL), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1326 NWidget(WWT_IMGBTN, COLOUR_LIGHT_BLUE, NSSW_SPECTATORS_BTND), SetMinimalSize(12, 12), SetFill(0, 1), SetDataTip(SPR_ARROW_DOWN, STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1327 NWidget(WWT_PUSHTXTBTN, COLOUR_LIGHT_BLUE, NSSW_SPECTATORS_TXT), SetFill(1, 0), SetDataTip(STR_NETWORK_START_SERVER_SPECTATORS_SELECT, STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1328 NWidget(WWT_IMGBTN, COLOUR_LIGHT_BLUE, NSSW_SPECTATORS_BTNU), SetMinimalSize(12, 12), SetFill(0, 1), SetDataTip(SPR_ARROW_UP, STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1329 EndContainer(), |
11847
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1330 EndContainer(), |
17154
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1331 EndContainer(), |
11847
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1332 |
17154
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1333 /* 'generate game' and 'load game' buttons */ |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1334 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(10, 6, 10), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1335 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NSSW_GENERATE_GAME), SetDataTip(STR_INTRO_NEW_GAME, STR_INTRO_TOOLTIP_NEW_GAME), SetFill(1, 0), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1336 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NSSW_LOAD_GAME), SetDataTip(STR_INTRO_LOAD_GAME, STR_INTRO_TOOLTIP_LOAD_GAME), SetFill(1, 0), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1337 EndContainer(), |
11847
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1338 |
17154
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1339 /* 'play scenario' and 'play heightmap' buttons */ |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1340 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(10, 6, 10), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1341 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NSSW_PLAY_SCENARIO), SetDataTip(STR_INTRO_PLAY_SCENARIO, STR_INTRO_TOOLTIP_PLAY_SCENARIO), SetFill(1, 0), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1342 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NSSW_PLAY_HEIGHTMAP), SetDataTip(STR_INTRO_PLAY_HEIGHTMAP, STR_INTRO_TOOLTIP_PLAY_HEIGHTMAP), SetFill(1, 0), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1343 EndContainer(), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1344 |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1345 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(10, 0, 10), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1346 NWidget(NWID_SPACER), SetFill(1, 0), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1347 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NSSW_CANCEL), SetDataTip(STR_BUTTON_CANCEL, STR_NULL), SetMinimalSize(128, 12), |
32ee2727c119
(svn r21892) -Fix [FS#4421]: only some scenarios from the main scenario folder and no heightmaps could be started in the "start server" window
rubidium <rubidium@openttd.org>
parents:
17117
diff
changeset
|
1348 NWidget(NWID_SPACER), SetFill(1, 0), |
11847
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1349 EndContainer(), |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1350 EndContainer(), |
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 }; |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1353 |
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
|
1354 static const WindowDesc _network_start_server_window_desc( |
13798
6f820ae12bb3
(svn r18324) -Codechange: there's no need for a default size when the window isn't resizable
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
1355 WDP_CENTER, 0, 0, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5669
diff
changeset
|
1356 WC_NETWORK_WINDOW, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13726
diff
changeset
|
1357 WDF_UNCLICK_BUTTONS, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13556
diff
changeset
|
1358 _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
|
1359 ); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1360 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
5916
diff
changeset
|
1361 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
|
1362 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1363 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
|
1364 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
1365 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
|
1366 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1367 |
7963
c35c4ff096c4
(svn r11519) -Codechange: enumerization and cleanup of NetworkLobbyWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents:
7961
diff
changeset
|
1368 /** 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
|
1369 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
|
1370 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
|
1371 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
|
1372 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
|
1373 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
|
1374 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
|
1375 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
|
1376 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
|
1377 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
|
1378 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
|
1379 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
|
1380 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
|
1381 }; |
c35c4ff096c4
(svn r11519) -Codechange: enumerization and cleanup of NetworkLobbyWindow in network_gui.cpp
smatz <smatz@openttd.org>
parents:
7961
diff
changeset
|
1382 |
9177
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1383 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
|
1384 CompanyID company; ///< Select company |
9177
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1385 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
|
1386 NetworkCompanyInfo company_info[MAX_COMPANIES]; |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1387 Scrollbar *vscroll; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1388 |
9177
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1389 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
|
1390 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
|
1391 { |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1392 this->CreateNestedTree(desc); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1393 this->vscroll = this->GetScrollbar(NLWW_SCROLLBAR); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1394 this->FinishInitNested(desc, 0); |
13376
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1395 this->OnResize(); |
9177
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1396 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1397 |
13376
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1398 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
|
1399 { |
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
|
1400 /* 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
|
1401 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
|
1402 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
|
1403 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
|
1404 } |
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
|
1405 } |
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
|
1406 |
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
|
1407 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
|
1408 } |
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
|
1409 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
1410 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
13376
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1411 { |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1412 switch (widget) { |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1413 case NLWW_HEADER: |
14561
c94cddea6802
(svn r19132) -Codechange: No need to end a line with ;;.
alberth <alberth@openttd.org>
parents:
14516
diff
changeset
|
1414 size->height = WD_MATRIX_TOP + FONT_HEIGHT_NORMAL + WD_MATRIX_BOTTOM; |
13376
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1415 break; |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1416 |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1417 case NLWW_MATRIX: |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1418 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
|
1419 size->height = 10 * resize->height; |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1420 break; |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1421 |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1422 case NLWW_DETAILS: |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1423 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
|
1424 break; |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1425 } |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1426 } |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1427 |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1428 virtual void SetStringParameters(int widget) const |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1429 { |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1430 switch (widget) { |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1431 case NLWW_TEXT: |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1432 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
|
1433 break; |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1434 } |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1435 } |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1436 |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1437 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
|
1438 { |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1439 switch (widget) { |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1440 case NLWW_DETAILS: |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1441 this->DrawDetails(r); |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1442 break; |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1443 |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1444 case NLWW_MATRIX: |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1445 this->DrawMatrix(r); |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1446 break; |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1447 } |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1448 } |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1449 |
9177
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1450 virtual void OnPaint() |
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1451 { |
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1452 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
|
1453 |
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
|
1454 /* 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
|
1455 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
|
1456 /* 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
|
1457 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
|
1458 /* 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
|
1459 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
|
1460 |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1461 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
|
1462 |
13376
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1463 /* Draw window widgets */ |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1464 this->DrawWidgets(); |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1465 } |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1466 |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1467 void DrawMatrix(const Rect &r) const |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1468 { |
16441
86fd9bcc9d2f
(svn r21157) -Codechange: remove information about the text direction out of the language "list"
rubidium <rubidium@openttd.org>
parents:
16256
diff
changeset
|
1469 bool rtl = _current_text_dir == TD_RTL; |
13651
5a604d7988c1
(svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents:
13628
diff
changeset
|
1470 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
|
1471 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
|
1472 |
16026
984e08a17c44
(svn r20719) -Codechange: Remove some hardcoded iconsizes.
frosch <frosch@openttd.org>
parents:
16004
diff
changeset
|
1473 Dimension lock_size = GetSpriteSize(SPR_LOCK); |
984e08a17c44
(svn r20719) -Codechange: Remove some hardcoded iconsizes.
frosch <frosch@openttd.org>
parents:
16004
diff
changeset
|
1474 int lock_width = lock_size.width; |
984e08a17c44
(svn r20719) -Codechange: Remove some hardcoded iconsizes.
frosch <frosch@openttd.org>
parents:
16004
diff
changeset
|
1475 int lock_y_offset = (this->resize.step_height - WD_MATRIX_TOP - WD_MATRIX_BOTTOM - lock_size.height) / 2; |
984e08a17c44
(svn r20719) -Codechange: Remove some hardcoded iconsizes.
frosch <frosch@openttd.org>
parents:
16004
diff
changeset
|
1476 |
16027
b8ab366dc9fa
(svn r20720) -Add: separate GUI icons for vehicle/company profit, exclusive rights and unread news.
frosch <frosch@openttd.org>
parents:
16026
diff
changeset
|
1477 Dimension profit_size = GetSpriteSize(SPR_PROFIT_LOT); |
16026
984e08a17c44
(svn r20719) -Codechange: Remove some hardcoded iconsizes.
frosch <frosch@openttd.org>
parents:
16004
diff
changeset
|
1478 int profit_width = lock_size.width; |
984e08a17c44
(svn r20719) -Codechange: Remove some hardcoded iconsizes.
frosch <frosch@openttd.org>
parents:
16004
diff
changeset
|
1479 int profit_y_offset = (this->resize.step_height - WD_MATRIX_TOP - WD_MATRIX_BOTTOM - profit_size.height) / 2; |
984e08a17c44
(svn r20719) -Codechange: Remove some hardcoded iconsizes.
frosch <frosch@openttd.org>
parents:
16004
diff
changeset
|
1480 |
984e08a17c44
(svn r20719) -Codechange: Remove some hardcoded iconsizes.
frosch <frosch@openttd.org>
parents:
16004
diff
changeset
|
1481 uint text_left = left + (rtl ? lock_width + profit_width + 4 : 0); |
984e08a17c44
(svn r20719) -Codechange: Remove some hardcoded iconsizes.
frosch <frosch@openttd.org>
parents:
16004
diff
changeset
|
1482 uint text_right = right - (rtl ? 0 : lock_width + profit_width + 4); |
984e08a17c44
(svn r20719) -Codechange: Remove some hardcoded iconsizes.
frosch <frosch@openttd.org>
parents:
16004
diff
changeset
|
1483 uint profit_left = rtl ? left : right - profit_width; |
984e08a17c44
(svn r20719) -Codechange: Remove some hardcoded iconsizes.
frosch <frosch@openttd.org>
parents:
16004
diff
changeset
|
1484 uint lock_left = rtl ? left + profit_width + 2 : right - profit_width - lock_width - 2; |
13651
5a604d7988c1
(svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents:
13628
diff
changeset
|
1485 |
13376
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1486 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
|
1487 /* Draw company list */ |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1488 int pos = this->vscroll->GetPosition(); |
13376
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1489 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
|
1490 byte company = NetworkLobbyFindCompanyIndex(pos); |
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1491 bool income = false; |
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1492 if (this->company == company) { |
13376
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1493 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
|
1494 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1495 |
13651
5a604d7988c1
(svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents:
13628
diff
changeset
|
1496 DrawString(text_left, text_right, y, this->company_info[company].company_name, TC_BLACK); |
16026
984e08a17c44
(svn r20719) -Codechange: Remove some hardcoded iconsizes.
frosch <frosch@openttd.org>
parents:
16004
diff
changeset
|
1497 if (this->company_info[company].use_password != 0) DrawSprite(SPR_LOCK, PAL_NONE, lock_left, y + lock_y_offset); |
9177
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1498 |
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1499 /* 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
|
1500 if (this->company_info[company].income >= 0) income = true; |
16027
b8ab366dc9fa
(svn r20720) -Add: separate GUI icons for vehicle/company profit, exclusive rights and unread news.
frosch <frosch@openttd.org>
parents:
16026
diff
changeset
|
1501 DrawSprite(income ? SPR_PROFIT_LOT : SPR_PROFIT_NEGATIVE, PAL_NONE, profit_left, y + profit_y_offset); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1502 |
9177
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1503 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
|
1504 y += this->resize.step_height; |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1505 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
|
1506 } |
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
|
1507 } |
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
|
1508 |
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
|
1509 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
|
1510 { |
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
|
1511 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
|
1512 /* 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
|
1513 GfxFillRect(r.left + 1, r.top + 1, r.right - 1, r.top + detail_height - 1, 157); |
15400
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15382
diff
changeset
|
1514 DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + 12, STR_NETWORK_GAME_LOBBY_COMPANY_INFO, TC_FROMSTRING, SA_HOR_CENTER); |
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
|
1515 |
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
|
1516 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
|
1517 |
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
|
1518 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
|
1519 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
|
1520 |
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
|
1521 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
|
1522 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
|
1523 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
|
1524 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
|
1525 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
|
1526 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
|
1527 |
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
|
1528 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
|
1529 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
|
1530 y += FONT_HEIGHT_NORMAL; |
9177
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1531 |
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
|
1532 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
|
1533 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
|
1534 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
|
1535 |
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
|
1536 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
|
1537 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
|
1538 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
|
1539 |
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
|
1540 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
|
1541 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
|
1542 y += FONT_HEIGHT_NORMAL; |
9177
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1543 |
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
|
1544 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
|
1545 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
|
1546 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
|
1547 |
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
|
1548 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
|
1549 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
|
1550 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
|
1551 |
15354
e5aca250668a
(svn r19996) -Codechange: Add NetworkVehicleType enum.
rubidium <rubidium@openttd.org>
parents:
15189
diff
changeset
|
1552 SetDParam(0, this->company_info[this->company].num_vehicle[NETWORK_VEH_TRAIN]); |
e5aca250668a
(svn r19996) -Codechange: Add NetworkVehicleType enum.
rubidium <rubidium@openttd.org>
parents:
15189
diff
changeset
|
1553 SetDParam(1, this->company_info[this->company].num_vehicle[NETWORK_VEH_LORRY]); |
e5aca250668a
(svn r19996) -Codechange: Add NetworkVehicleType enum.
rubidium <rubidium@openttd.org>
parents:
15189
diff
changeset
|
1554 SetDParam(2, this->company_info[this->company].num_vehicle[NETWORK_VEH_BUS]); |
15356
70992798971f
(svn r19998) -Codechange: Unify the order of ship and plane icon in network-lobby with the rest of the game (frosch)
rubidium <rubidium@openttd.org>
parents:
15354
diff
changeset
|
1555 SetDParam(3, this->company_info[this->company].num_vehicle[NETWORK_VEH_SHIP]); |
70992798971f
(svn r19998) -Codechange: Unify the order of ship and plane icon in network-lobby with the rest of the game (frosch)
rubidium <rubidium@openttd.org>
parents:
15354
diff
changeset
|
1556 SetDParam(4, this->company_info[this->company].num_vehicle[NETWORK_VEH_PLANE]); |
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
|
1557 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
|
1558 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
|
1559 |
15354
e5aca250668a
(svn r19996) -Codechange: Add NetworkVehicleType enum.
rubidium <rubidium@openttd.org>
parents:
15189
diff
changeset
|
1560 SetDParam(0, this->company_info[this->company].num_station[NETWORK_VEH_TRAIN]); |
e5aca250668a
(svn r19996) -Codechange: Add NetworkVehicleType enum.
rubidium <rubidium@openttd.org>
parents:
15189
diff
changeset
|
1561 SetDParam(1, this->company_info[this->company].num_station[NETWORK_VEH_LORRY]); |
e5aca250668a
(svn r19996) -Codechange: Add NetworkVehicleType enum.
rubidium <rubidium@openttd.org>
parents:
15189
diff
changeset
|
1562 SetDParam(2, this->company_info[this->company].num_station[NETWORK_VEH_BUS]); |
15356
70992798971f
(svn r19998) -Codechange: Unify the order of ship and plane icon in network-lobby with the rest of the game (frosch)
rubidium <rubidium@openttd.org>
parents:
15354
diff
changeset
|
1563 SetDParam(3, this->company_info[this->company].num_station[NETWORK_VEH_SHIP]); |
70992798971f
(svn r19998) -Codechange: Unify the order of ship and plane icon in network-lobby with the rest of the game (frosch)
rubidium <rubidium@openttd.org>
parents:
15354
diff
changeset
|
1564 SetDParam(4, this->company_info[this->company].num_station[NETWORK_VEH_PLANE]); |
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
|
1565 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
|
1566 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
|
1567 |
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
|
1568 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
|
1569 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
|
1570 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1571 |
14409
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14258
diff
changeset
|
1572 virtual void OnClick(Point pt, int widget, int click_count) |
9177
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1573 { |
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1574 switch (widget) { |
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1575 case NLWW_CANCEL: // Cancel button |
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1576 ShowNetworkGameWindow(); |
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1577 break; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1578 |
9177
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1579 case NLWW_MATRIX: { // Company list |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1580 uint id_v = this->vscroll->GetScrolledRowFromWidget(pt.y, this, NLWW_MATRIX); |
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
|
1581 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
|
1582 this->SetDirty(); |
14409
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14258
diff
changeset
|
1583 |
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14258
diff
changeset
|
1584 /* FIXME the disabling should go into some InvalidateData, which is called instead of the SetDirty */ |
14410
9a9236bf1a28
(svn r18967) -Fix (r18966): Never trust your copy&paste skills.
frosch <frosch@openttd.org>
parents:
14409
diff
changeset
|
1585 if (click_count > 1 && !this->IsWidgetDisabled(NLWW_JOIN)) this->OnClick(pt, NLWW_JOIN, 1); |
15618
e4640748f223
(svn r20281) -Codechange: unify case scope closure + break coding style
rubidium <rubidium@openttd.org>
parents:
15579
diff
changeset
|
1586 break; |
e4640748f223
(svn r20281) -Codechange: unify case scope closure + break coding style
rubidium <rubidium@openttd.org>
parents:
15579
diff
changeset
|
1587 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1588 |
9177
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1589 case NLWW_JOIN: // Join company |
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1590 /* 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
|
1591 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
|
1592 break; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1593 |
9177
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1594 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
|
1595 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
|
1596 break; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1597 |
9177
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1598 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
|
1599 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
|
1600 break; |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1601 |
9177
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1602 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
|
1603 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
|
1604 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
|
1605 /* 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
|
1606 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
|
1607 break; |
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1608 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1609 } |
10049
78cd320f0fc9
(svn r14209) -Feature(tte): doubleclick to join selected server/company
smatz <smatz@openttd.org>
parents:
9898
diff
changeset
|
1610 |
13376
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1611 virtual void OnResize() |
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1612 { |
15779
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1613 this->vscroll->SetCapacityFromWidget(this, NLWW_MATRIX); |
9ad2843db6f4
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
frosch <frosch@openttd.org>
parents:
15778
diff
changeset
|
1614 this->GetWidget<NWidgetCore>(NLWW_MATRIX)->widget_data = (this->vscroll->GetCapacity() << MAT_ROW_START) + (1 << MAT_COL_START); |
13376
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1615 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1616 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1617 |
11847
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1618 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
|
1619 NWidget(NWID_HORIZONTAL), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
1620 NWidget(WWT_CLOSEBOX, COLOUR_LIGHT_BLUE), |
14046
425d4e2d7cb7
(svn r18589) -Codechange: Add tooltip to some network windows, remove old comment.
alberth <alberth@openttd.org>
parents:
14037
diff
changeset
|
1621 NWidget(WWT_CAPTION, COLOUR_LIGHT_BLUE), SetDataTip(STR_NETWORK_GAME_LOBBY_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
|
1622 EndContainer(), |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1623 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
|
1624 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
|
1625 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
|
1626 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
|
1627 /* Company list. */ |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1628 NWidget(NWID_VERTICAL), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
1629 NWidget(WWT_PANEL, COLOUR_WHITE, NLWW_HEADER), SetMinimalSize(146, 0), SetResize(1, 0), SetFill(1, 0), EndContainer(), |
15778
4f4c3160cca8
(svn r20452) -Codechange: Remove NWidgetCore::FindScrollbar() and associate scrollbar explicitly using a NWidgetPart via SetScrollbar().
frosch <frosch@openttd.org>
parents:
15626
diff
changeset
|
1630 NWidget(WWT_MATRIX, COLOUR_LIGHT_BLUE, NLWW_MATRIX), SetMinimalSize(146, 0), SetResize(1, 1), SetFill(1, 1), SetDataTip(0, STR_NETWORK_GAME_LOBBY_COMPANY_LIST_TOOLTIP), SetScrollbar(NLWW_SCROLLBAR), |
11847
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1631 EndContainer(), |
15787
6c4bec3b8401
(svn r20461) -Codechange: Replace WWT_HSCROLLBAR, WWT_SCROLLBAR and WWT_SCROLL2BAR with NWID_HSCROLLBAR and NWID_VSCROLLBAR.
frosch <frosch@openttd.org>
parents:
15779
diff
changeset
|
1632 NWidget(NWID_VSCROLLBAR, COLOUR_LIGHT_BLUE, NLWW_SCROLLBAR), |
13376
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1633 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
|
1634 /* Company info. */ |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
1635 NWidget(WWT_PANEL, COLOUR_LIGHT_BLUE, NLWW_DETAILS), SetMinimalSize(232, 0), SetResize(1, 1), SetFill(1, 1), EndContainer(), |
11847
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1636 EndContainer(), |
12408
a1c0de97cd50
(svn r16842) -Cleanup: add some spaces around a few operators
rubidium <rubidium@openttd.org>
parents:
11956
diff
changeset
|
1637 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
|
1638 /* Buttons. */ |
13376
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1639 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
|
1640 NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 3, 0), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
1641 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NLWW_JOIN), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_NETWORK_GAME_LOBBY_JOIN_COMPANY, STR_NETWORK_GAME_LOBBY_JOIN_COMPANY_TOOLTIP), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
1642 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NLWW_NEW), SetResize(1, 0), SetFill(1, 0), 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
|
1643 EndContainer(), |
13376
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1644 NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 3, 0), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
1645 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NLWW_SPECTATE), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_NETWORK_GAME_LOBBY_SPECTATE_GAME, STR_NETWORK_GAME_LOBBY_SPECTATE_GAME_TOOLTIP), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
1646 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NLWW_REFRESH), SetResize(1, 0), SetFill(1, 0), 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
|
1647 EndContainer(), |
13376
9f1c0925059c
(svn r17885) -Codechange: make the network lobby window nested
rubidium <rubidium@openttd.org>
parents:
13375
diff
changeset
|
1648 NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 3, 0), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
1649 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NLWW_CANCEL), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_BUTTON_CANCEL, STR_NULL), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
1650 NWidget(NWID_SPACER), SetFill(1, 1), |
11847
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1651 EndContainer(), |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1652 EndContainer(), |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1653 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
|
1654 EndContainer(), |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1655 }; |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1656 |
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
|
1657 static const WindowDesc _network_lobby_window_desc( |
13796
3e68f07eb821
(svn r18322) -Codechange: remove the WDP duplication; no need to tell the same twice.
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
1658 WDP_CENTER, 0, 0, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5669
diff
changeset
|
1659 WC_NETWORK_WINDOW, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13726
diff
changeset
|
1660 WDF_UNCLICK_BUTTONS, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13556
diff
changeset
|
1661 _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
|
1662 ); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1663 |
15382
8e0d118d93ce
(svn r20025) -Doc: Fix/add comments to let Doxygen know about the documentation.
alberth <alberth@openttd.org>
parents:
15369
diff
changeset
|
1664 /** |
8e0d118d93ce
(svn r20025) -Doc: Fix/add comments to let Doxygen know about the documentation.
alberth <alberth@openttd.org>
parents:
15369
diff
changeset
|
1665 * Show the networklobbywindow with the selected server. |
8e0d118d93ce
(svn r20025) -Doc: Fix/add comments to let Doxygen know about the documentation.
alberth <alberth@openttd.org>
parents:
15369
diff
changeset
|
1666 * @param ngl Selected game pointer which is passed to the new window. |
8e0d118d93ce
(svn r20025) -Doc: Fix/add comments to let Doxygen know about the documentation.
alberth <alberth@openttd.org>
parents:
15369
diff
changeset
|
1667 */ |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1668 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
|
1669 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1670 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
|
1671 |
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
|
1672 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
|
1673 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
|
1674 |
9177
94a08f9e1061
(svn r13040) -Codechange: make a class of the NetworkLobbyWindow.
rubidium <rubidium@openttd.org>
parents:
9165
diff
changeset
|
1675 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
|
1676 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1677 |
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
|
1678 /** |
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
|
1679 * 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
|
1680 * @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
|
1681 * @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
|
1682 */ |
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
|
1683 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
|
1684 { |
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
|
1685 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
|
1686 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
|
1687 } |
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
|
1688 |
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
|
1689 /* 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
|
1690 * 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
|
1691 * 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
|
1692 |
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
|
1693 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
|
1694 |
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
|
1695 /* 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
|
1696 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
|
1697 |
13443
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1698 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
|
1699 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
|
1700 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1701 |
13443
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1702 static const WindowDesc _client_list_popup_desc( |
13798
6f820ae12bb3
(svn r18324) -Codechange: there's no need for a default size when the window isn't resizable
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
1703 WDP_AUTO, 0, 0, |
13443
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1704 WC_TOOLBAR_MENU, WC_CLIENT_LIST, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13726
diff
changeset
|
1705 0, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13556
diff
changeset
|
1706 _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
|
1707 ); |
11847
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
1708 |
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
|
1709 /* 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
|
1710 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
|
1711 { |
11578
494219bd4418
(svn r15947) -Codechange: replace uint32 client_ip with NetworkAddress client_address.
rubidium <rubidium@openttd.org>
parents:
11565
diff
changeset
|
1712 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
|
1713 |
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
|
1714 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
|
1715 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
|
1716 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
|
1717 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1718 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1719 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
|
1720 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1721 |
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
|
1722 /* 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
|
1723 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
|
1724 { |
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
|
1725 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
|
1726 |
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
|
1727 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
|
1728 |
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
|
1729 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
|
1730 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1731 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1732 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
|
1733 { |
11578
494219bd4418
(svn r15947) -Codechange: replace uint32 client_ip with NetworkAddress client_address.
rubidium <rubidium@openttd.org>
parents:
11565
diff
changeset
|
1734 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
|
1735 |
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
|
1736 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
|
1737 |
15189
185fd61182ab
(svn r19818) -Fix [FS#3784](r16004): kicking clients by IP didn't work
smatz <smatz@openttd.org>
parents:
14995
diff
changeset
|
1738 NetworkServerKickOrBanIP(GetClientIP(ci), true); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1739 } |
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 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
|
1742 { |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1743 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
|
1744 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
|
1745 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1746 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1747 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1748 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
|
1749 { |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1750 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
|
1751 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
|
1752 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1753 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1754 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1755 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
|
1756 { |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1757 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
|
1758 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
|
1759 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1760 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1761 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1762 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
|
1763 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1764 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
|
1765 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1766 |
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
|
1767 /** 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
|
1768 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
|
1769 /** 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
|
1770 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
|
1771 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
|
1772 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
|
1773 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1774 |
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
|
1775 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
|
1776 int client_no; |
13443
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1777 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
|
1778 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
|
1779 |
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
|
1780 /** |
53a39cddf2be
(svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents:
13439
diff
changeset
|
1781 * 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
|
1782 * @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
|
1783 * @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
|
1784 */ |
53a39cddf2be
(svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents:
13439
diff
changeset
|
1785 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
|
1786 { |
53a39cddf2be
(svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.
rubidium <rubidium@openttd.org>
parents:
13439
diff
changeset
|
1787 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
|
1788 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
|
1789 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
|
1790 } |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1791 |
13443
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1792 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
|
1793 Window(), |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1794 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
|
1795 { |
13443
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1796 this->desired_location.x = x; |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1797 this->desired_location.y = y; |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1798 |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1799 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
|
1800 |
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
|
1801 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
|
1802 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
|
1803 } |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1804 |
11924
fccc9cea27a7
(svn r16327) -Codechange: replace IsValidPoolItemID(index) by PoolItem::IsValidID(index)
smatz <smatz@openttd.org>
parents:
11888
diff
changeset
|
1805 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
|
1806 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
|
1807 } |
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
|
1808 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
|
1809 |
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
|
1810 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
|
1811 /* 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
|
1812 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
|
1813 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
|
1814 } |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1815 } |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1816 |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1817 /* 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
|
1818 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
|
1819 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
|
1820 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
|
1821 } |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1822 |
13443
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1823 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
|
1824 this->InitNested(desc, 0); |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1825 } |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1826 |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1827 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
|
1828 { |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1829 return this->desired_location; |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1830 } |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1831 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
1832 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
13443
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1833 { |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1834 Dimension d = *size; |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1835 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
|
1836 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
|
1837 } |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1838 |
13443
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1839 d.height *= this->actions.Length(); |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1840 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
|
1841 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
|
1842 *size = d; |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1843 } |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1844 |
13443
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1845 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
|
1846 { |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1847 /* Draw the actions */ |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1848 int sel = this->sel_index; |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1849 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
|
1850 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
|
1851 TextColour colour; |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1852 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
|
1853 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
|
1854 colour = TC_WHITE; |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1855 } else { |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1856 colour = TC_BLACK; |
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1857 } |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1858 |
13443
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1859 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
|
1860 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1861 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1862 |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1863 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
|
1864 { |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1865 /* 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
|
1866 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
|
1867 |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1868 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
|
1869 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
|
1870 |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1871 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
|
1872 this->SetDirty(); |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1873 } 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
|
1874 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
|
1875 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
|
1876 } |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1877 |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1878 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
|
1879 } |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1880 } |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1881 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1882 |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1883 /** |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1884 * 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
|
1885 */ |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1886 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
|
1887 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1888 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
|
1889 |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1890 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
|
1891 |
13443
6bfe74de8027
(svn r17952) -Codechange: make the network client list popup nested
rubidium <rubidium@openttd.org>
parents:
13442
diff
changeset
|
1892 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
|
1893 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1894 |
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
|
1895 |
1ab8e5dfef6c
(svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents:
13396
diff
changeset
|
1896 /** 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
|
1897 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
|
1898 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
|
1899 }; |
1ab8e5dfef6c
(svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents:
13396
diff
changeset
|
1900 |
1ab8e5dfef6c
(svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents:
13396
diff
changeset
|
1901 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
|
1902 NWidget(NWID_HORIZONTAL), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
1903 NWidget(WWT_CLOSEBOX, COLOUR_GREY), |
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
1904 NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_NETWORK_COMPANY_LIST_CLIENT_LIST, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), |
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
1905 NWidget(WWT_STICKYBOX, COLOUR_GREY), |
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
|
1906 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
|
1907 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
|
1908 }; |
1ab8e5dfef6c
(svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents:
13396
diff
changeset
|
1909 |
1ab8e5dfef6c
(svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents:
13396
diff
changeset
|
1910 static const WindowDesc _client_list_desc( |
13798
6f820ae12bb3
(svn r18324) -Codechange: there's no need for a default size when the window isn't resizable
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
1911 WDP_AUTO, 0, 0, |
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
|
1912 WC_CLIENT_LIST, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13726
diff
changeset
|
1913 0, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13556
diff
changeset
|
1914 _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
|
1915 ); |
1ab8e5dfef6c
(svn r17946) -Codechange: move the widget definition of the client list closer to the window
rubidium <rubidium@openttd.org>
parents:
13396
diff
changeset
|
1916 |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1917 /** |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1918 * Main handle for clientlist |
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1919 */ |
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
|
1920 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
|
1921 int selected_item; |
13445
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1922 |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1923 uint server_client_width; |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1924 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
|
1925 |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1926 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
|
1927 Window(), |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1928 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
|
1929 { |
13445
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1930 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
|
1931 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
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 /** |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1934 * 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
|
1935 */ |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1936 bool CheckClientListHeight() |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1937 { |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1938 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
|
1939 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
|
1940 |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1941 /* 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
|
1942 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
|
1943 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
|
1944 } |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1945 |
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
|
1946 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
|
1947 |
13445
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1948 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
|
1949 /* 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
|
1950 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
|
1951 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
|
1952 return false; |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1953 } |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1954 return true; |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1955 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1956 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
1957 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
13445
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1958 { |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1959 if (widget != CLW_PANEL) return; |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1960 |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1961 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
|
1962 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
|
1963 |
13879
1501e8e0b705
(svn r18408) -Fix (r17954): After computing the needed width for the client list, also use it.
frosch <frosch@openttd.org>
parents:
13804
diff
changeset
|
1964 uint width = 100; // Default width |
13445
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1965 const NetworkClientInfo *ci; |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1966 FOR_ALL_CLIENT_INFOS(ci) { |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1967 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
|
1968 } |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1969 |
13879
1501e8e0b705
(svn r18408) -Fix (r17954): After computing the needed width for the client list, also use it.
frosch <frosch@openttd.org>
parents:
13804
diff
changeset
|
1970 size->width = WD_FRAMERECT_LEFT + this->server_client_width + this->company_icon_width + width + WD_FRAMERECT_RIGHT; |
13445
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1971 } |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1972 |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1973 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
|
1974 { |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
1975 /* 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
|
1976 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
|
1977 |
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
|
1978 this->DrawWidgets(); |
13445
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1979 } |
8738
723631ab4868
(svn r12426) -Cleanup: sprinkle some coding style over a few files.
rubidium <rubidium@openttd.org>
parents:
8737
diff
changeset
|
1980 |
13445
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1981 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
|
1982 { |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1983 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
|
1984 |
16441
86fd9bcc9d2f
(svn r21157) -Codechange: remove information about the text direction out of the language "list"
rubidium <rubidium@openttd.org>
parents:
16256
diff
changeset
|
1985 bool rtl = _current_text_dir == TD_RTL; |
13724
6530ffe79d47
(svn r18249) -Codechange: make the network client list big font aware
rubidium <rubidium@openttd.org>
parents:
13705
diff
changeset
|
1986 int icon_y_offset = 1 + (FONT_HEIGHT_NORMAL - 10) / 2; |
13651
5a604d7988c1
(svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents:
13628
diff
changeset
|
1987 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
|
1988 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
|
1989 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
|
1990 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
|
1991 |
5a604d7988c1
(svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents:
13628
diff
changeset
|
1992 |
5a604d7988c1
(svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents:
13628
diff
changeset
|
1993 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
|
1994 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
|
1995 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
|
1996 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
|
1997 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
|
1998 |
13445
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
1999 int i = 0; |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
2000 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
|
2001 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
|
2002 TextColour colour; |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2003 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
|
2004 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
|
2005 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
|
2006 } else { |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2007 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
|
2008 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2009 |
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
|
2010 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
|
2011 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
|
2012 } else { |
13651
5a604d7988c1
(svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents:
13628
diff
changeset
|
2013 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
|
2014 } |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2015 |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2016 /* Filter out spectators */ |
13724
6530ffe79d47
(svn r18249) -Codechange: make the network client list big font aware
rubidium <rubidium@openttd.org>
parents:
13705
diff
changeset
|
2017 if (Company::IsValidID(ci->client_playas)) DrawCompanyIcon(ci->client_playas, icon_left, y + icon_y_offset); |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2018 |
13651
5a604d7988c1
(svn r18175) -Codechange: make the network lobby and client list RTL aware
rubidium <rubidium@openttd.org>
parents:
13628
diff
changeset
|
2019 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
|
2020 |
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
|
2021 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
|
2022 } |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2023 } |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2024 |
14409
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14258
diff
changeset
|
2025 virtual void OnClick(Point pt, int widget, int click_count) |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2026 { |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2027 /* 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
|
2028 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
|
2029 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
|
2030 } |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2031 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2032 |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2033 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
|
2034 { |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2035 /* -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
|
2036 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
|
2037 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
|
2038 this->SetDirty(); |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2039 return; |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2040 } |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2041 |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2042 /* 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
|
2043 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
|
2044 int item = -1; |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
2045 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
|
2046 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
|
2047 } |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
2048 |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
2049 /* It did not change.. no update! */ |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
2050 if (item == this->selected_item) return; |
c38047a5bdfb
(svn r17954) -Codechange: make the network client list nested
rubidium <rubidium@openttd.org>
parents:
13443
diff
changeset
|
2051 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
|
2052 |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2053 /* Repaint */ |
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2054 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
|
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 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2057 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
5916
diff
changeset
|
2058 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
|
2059 { |
9242
b400b0761465
(svn r13108) -Codechange: make a Window subclass of the main toolbars sub menus.
rubidium <rubidium@openttd.org>
parents:
9241
diff
changeset
|
2060 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
|
2061 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2062 |
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
|
2063 /* 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
|
2064 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
|
2065 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
|
2066 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
|
2067 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
|
2068 |
11430
c1e93c7799b6
(svn r15788) -Codechange: enumify the network join status widgets and use them.
rubidium <rubidium@openttd.org>
parents:
11427
diff
changeset
|
2069 /** 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
|
2070 enum NetworkJoinStatusWidgets { |
c1e93c7799b6
(svn r15788) -Codechange: enumify the network join status widgets and use them.
rubidium <rubidium@openttd.org>
parents:
11427
diff
changeset
|
2071 NJSW_BACKGROUND, ///< Background |
c1e93c7799b6
(svn r15788) -Codechange: enumify the network join status widgets and use them.
rubidium <rubidium@openttd.org>
parents:
11427
diff
changeset
|
2072 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
|
2073 }; |
c1e93c7799b6
(svn r15788) -Codechange: enumify the network join status widgets and use them.
rubidium <rubidium@openttd.org>
parents:
11427
diff
changeset
|
2074 |
9269
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2075 struct NetworkJoinStatusWindow : Window { |
14994
7a1b8f9042a1
(svn r19606) -Codechange: remove global variable pw_type
smatz <smatz@openttd.org>
parents:
14676
diff
changeset
|
2076 NetworkPasswordType password_type; |
7a1b8f9042a1
(svn r19606) -Codechange: remove global variable pw_type
smatz <smatz@openttd.org>
parents:
14676
diff
changeset
|
2077 |
13449
a59eb51c3f11
(svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents:
13446
diff
changeset
|
2078 NetworkJoinStatusWindow(const WindowDesc *desc) : Window() |
9269
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2079 { |
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2080 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
|
2081 this->InitNested(desc, 0); |
9269
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2082 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2083 |
13449
a59eb51c3f11
(svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents:
13446
diff
changeset
|
2084 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
|
2085 { |
a59eb51c3f11
(svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents:
13446
diff
changeset
|
2086 if (widget != NJSW_BACKGROUND) return; |
a59eb51c3f11
(svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents:
13446
diff
changeset
|
2087 |
9269
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2088 uint8 progress; // used for progress bar |
15400
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15382
diff
changeset
|
2089 DrawString(r.left + 2, r.right - 2, r.top + 20, STR_NETWORK_CONNECTING_1 + _network_join_status, TC_FROMSTRING, SA_HOR_CENTER); |
9269
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2090 switch (_network_join_status) { |
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2091 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
|
2092 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
|
2093 progress = 10; // first two stages 10% |
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2094 break; |
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2095 case NETWORK_JOIN_STATUS_WAITING: |
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2096 SetDParam(0, _network_join_waiting); |
15400
821c26b30fd9
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
alberth <alberth@openttd.org>
parents:
15382
diff
changeset
|
2097 DrawString(r.left + 2, r.right - 2, r.top + 20 + FONT_HEIGHT_NORMAL, STR_NETWORK_CONNECTING_WAITING, TC_FROMSTRING, SA_HOR_CENTER); |
9269
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2098 progress = 15; // third stage is 15% |
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2099 break; |
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2100 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
|
2101 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
|
2102 SetDParam(1, _network_join_bytes_total); |
16659
05d70ac35d90
(svn r21390) -Codechange: prepare the network join progress bar for getting the file size later in the download process, i.e. when a chunk of the savegame is already received by the client
rubidium <rubidium@openttd.org>
parents:
16614
diff
changeset
|
2103 DrawString(r.left + 2, r.right - 2, r.top + 20 + FONT_HEIGHT_NORMAL, _network_join_bytes_total == 0 ? STR_NETWORK_CONNECTING_DOWNLOADING_1 : STR_NETWORK_CONNECTING_DOWNLOADING_2, TC_FROMSTRING, SA_HOR_CENTER); |
05d70ac35d90
(svn r21390) -Codechange: prepare the network join progress bar for getting the file size later in the download process, i.e. when a chunk of the savegame is already received by the client
rubidium <rubidium@openttd.org>
parents:
16614
diff
changeset
|
2104 if (_network_join_bytes_total == 0) { |
05d70ac35d90
(svn r21390) -Codechange: prepare the network join progress bar for getting the file size later in the download process, i.e. when a chunk of the savegame is already received by the client
rubidium <rubidium@openttd.org>
parents:
16614
diff
changeset
|
2105 progress = 15; // We don't have the final size yet; the server is still compressing! |
05d70ac35d90
(svn r21390) -Codechange: prepare the network join progress bar for getting the file size later in the download process, i.e. when a chunk of the savegame is already received by the client
rubidium <rubidium@openttd.org>
parents:
16614
diff
changeset
|
2106 break; |
05d70ac35d90
(svn r21390) -Codechange: prepare the network join progress bar for getting the file size later in the download process, i.e. when a chunk of the savegame is already received by the client
rubidium <rubidium@openttd.org>
parents:
16614
diff
changeset
|
2107 } |
15579
5f128be91f59
(svn r20239) -Doc: Give a common name to all fall throughs (FALL THROUGH).
terkhen <terkhen@openttd.org>
parents:
15563
diff
changeset
|
2108 /* FALL THROUGH */ |
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
|
2109 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
|
2110 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
|
2111 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2112 |
9269
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2113 /* Draw nice progress bar :) */ |
13449
a59eb51c3f11
(svn r17958) -Codechange: make the join progress window nested
rubidium <rubidium@openttd.org>
parents:
13446
diff
changeset
|
2114 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
|
2115 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2116 |
13726
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2117 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2118 { |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2119 if (widget != NJSW_BACKGROUND) return; |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2120 |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2121 size->height = 25 + 2 * FONT_HEIGHT_NORMAL; |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2122 |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2123 /* Account for the statuses */ |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2124 uint width = 0; |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2125 for (uint i = 0; i < NETWORK_JOIN_STATUS_END; i++) { |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2126 width = max(width, GetStringBoundingBox(STR_NETWORK_CONNECTING_1 + i).width); |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2127 } |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2128 |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2129 /* For the number of waiting (other) players */ |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2130 SetDParam(0, 255); |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2131 width = max(width, GetStringBoundingBox(STR_NETWORK_CONNECTING_WAITING).width); |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2132 |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2133 /* Account for downloading ~ 10 MiB */ |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2134 SetDParam(0, 10000000); |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2135 SetDParam(1, 10000000); |
16659
05d70ac35d90
(svn r21390) -Codechange: prepare the network join progress bar for getting the file size later in the download process, i.e. when a chunk of the savegame is already received by the client
rubidium <rubidium@openttd.org>
parents:
16614
diff
changeset
|
2136 width = max(width, GetStringBoundingBox(STR_NETWORK_CONNECTING_DOWNLOADING_1).width); |
05d70ac35d90
(svn r21390) -Codechange: prepare the network join progress bar for getting the file size later in the download process, i.e. when a chunk of the savegame is already received by the client
rubidium <rubidium@openttd.org>
parents:
16614
diff
changeset
|
2137 width = max(width, GetStringBoundingBox(STR_NETWORK_CONNECTING_DOWNLOADING_2).width); |
13726
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2138 |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2139 /* Give a bit more clearing for the widest strings than strictly needed */ |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2140 size->width = width + WD_FRAMERECT_LEFT + WD_FRAMERECT_BOTTOM + 10; |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2141 } |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2142 |
14409
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14258
diff
changeset
|
2143 virtual void OnClick(Point pt, int widget, int click_count) |
9269
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2144 { |
11430
c1e93c7799b6
(svn r15788) -Codechange: enumify the network join status widgets and use them.
rubidium <rubidium@openttd.org>
parents:
11427
diff
changeset
|
2145 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
|
2146 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
|
2147 SwitchToMode(SM_MENU); |
9269
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2148 ShowNetworkGameWindow(); |
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2149 } |
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2150 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2151 |
9269
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2152 virtual void OnQueryTextFinished(char *str) |
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2153 { |
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2154 if (StrEmpty(str)) { |
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2155 NetworkDisconnect(); |
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2156 ShowNetworkGameWindow(); |
14995
807715f421a8
(svn r19607) -Codechange: use different packet types instead of packet subtypes
smatz <smatz@openttd.org>
parents:
14994
diff
changeset
|
2157 return; |
807715f421a8
(svn r19607) -Codechange: use different packet types instead of packet subtypes
smatz <smatz@openttd.org>
parents:
14994
diff
changeset
|
2158 } |
807715f421a8
(svn r19607) -Codechange: use different packet types instead of packet subtypes
smatz <smatz@openttd.org>
parents:
14994
diff
changeset
|
2159 |
807715f421a8
(svn r19607) -Codechange: use different packet types instead of packet subtypes
smatz <smatz@openttd.org>
parents:
14994
diff
changeset
|
2160 switch (this->password_type) { |
16224
8192961db36e
(svn r20925) -Codechange: make the client send commands have a slightly more sensible name
rubidium <rubidium@openttd.org>
parents:
16027
diff
changeset
|
2161 case NETWORK_GAME_PASSWORD: MyClient::SendGamePassword (str); break; |
8192961db36e
(svn r20925) -Codechange: make the client send commands have a slightly more sensible name
rubidium <rubidium@openttd.org>
parents:
16027
diff
changeset
|
2162 case NETWORK_COMPANY_PASSWORD: MyClient::SendCompanyPassword(str); break; |
14995
807715f421a8
(svn r19607) -Codechange: use different packet types instead of packet subtypes
smatz <smatz@openttd.org>
parents:
14994
diff
changeset
|
2163 default: NOT_REACHED(); |
9269
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2164 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2165 } |
9269
9ba3a5bccb10
(svn r13135) -Codechange: make a class of the NetworkJoinStatusWindow.
rubidium <rubidium@openttd.org>
parents:
9242
diff
changeset
|
2166 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2167 |
11847
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
2168 static const NWidgetPart _nested_network_join_status_window_widgets[] = { |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
2169 NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_NETWORK_CONNECTING_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), |
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
2170 NWidget(WWT_PANEL, COLOUR_GREY), |
13726
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2171 NWidget(WWT_EMPTY, COLOUR_GREY, NJSW_BACKGROUND), |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2172 NWidget(NWID_HORIZONTAL), |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2173 NWidget(NWID_SPACER), SetMinimalSize(75, 0), SetFill(1, 0), |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2174 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NJSW_CANCELOK), SetMinimalSize(101, 12), SetDataTip(STR_NETWORK_CONNECTION_DISCONNECT, STR_NULL), |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2175 NWidget(NWID_SPACER), SetMinimalSize(75, 0), SetFill(1, 0), |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2176 EndContainer(), |
1ec9b9de9e12
(svn r18251) -Codechange: make the join status window big font aware
rubidium <rubidium@openttd.org>
parents:
13724
diff
changeset
|
2177 NWidget(NWID_SPACER), SetMinimalSize(0, 4), |
11847
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
2178 EndContainer(), |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
2179 }; |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
2180 |
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
|
2181 static const WindowDesc _network_join_status_window_desc( |
13798
6f820ae12bb3
(svn r18324) -Codechange: there's no need for a default size when the window isn't resizable
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
2182 WDP_CENTER, 0, 0, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5669
diff
changeset
|
2183 WC_NETWORK_STATUS_WINDOW, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13726
diff
changeset
|
2184 WDF_MODAL, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13556
diff
changeset
|
2185 _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
|
2186 ); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2187 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
5916
diff
changeset
|
2188 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
|
2189 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2190 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
|
2191 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
|
2192 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2193 |
14994
7a1b8f9042a1
(svn r19606) -Codechange: remove global variable pw_type
smatz <smatz@openttd.org>
parents:
14676
diff
changeset
|
2194 void ShowNetworkNeedPassword(NetworkPasswordType npt) |
7a1b8f9042a1
(svn r19606) -Codechange: remove global variable pw_type
smatz <smatz@openttd.org>
parents:
14676
diff
changeset
|
2195 { |
7a1b8f9042a1
(svn r19606) -Codechange: remove global variable pw_type
smatz <smatz@openttd.org>
parents:
14676
diff
changeset
|
2196 NetworkJoinStatusWindow *w = (NetworkJoinStatusWindow *)FindWindowById(WC_NETWORK_STATUS_WINDOW, 0); |
7a1b8f9042a1
(svn r19606) -Codechange: remove global variable pw_type
smatz <smatz@openttd.org>
parents:
14676
diff
changeset
|
2197 if (w == NULL) return; |
7a1b8f9042a1
(svn r19606) -Codechange: remove global variable pw_type
smatz <smatz@openttd.org>
parents:
14676
diff
changeset
|
2198 w->password_type = npt; |
7a1b8f9042a1
(svn r19606) -Codechange: remove global variable pw_type
smatz <smatz@openttd.org>
parents:
14676
diff
changeset
|
2199 |
7a1b8f9042a1
(svn r19606) -Codechange: remove global variable pw_type
smatz <smatz@openttd.org>
parents:
14676
diff
changeset
|
2200 StringID caption; |
7a1b8f9042a1
(svn r19606) -Codechange: remove global variable pw_type
smatz <smatz@openttd.org>
parents:
14676
diff
changeset
|
2201 switch (npt) { |
7a1b8f9042a1
(svn r19606) -Codechange: remove global variable pw_type
smatz <smatz@openttd.org>
parents:
14676
diff
changeset
|
2202 default: NOT_REACHED(); |
7a1b8f9042a1
(svn r19606) -Codechange: remove global variable pw_type
smatz <smatz@openttd.org>
parents:
14676
diff
changeset
|
2203 case NETWORK_GAME_PASSWORD: caption = STR_NETWORK_NEED_GAME_PASSWORD_CAPTION; break; |
7a1b8f9042a1
(svn r19606) -Codechange: remove global variable pw_type
smatz <smatz@openttd.org>
parents:
14676
diff
changeset
|
2204 case NETWORK_COMPANY_PASSWORD: caption = STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION; break; |
7a1b8f9042a1
(svn r19606) -Codechange: remove global variable pw_type
smatz <smatz@openttd.org>
parents:
14676
diff
changeset
|
2205 } |
17579
105b4e4eb168
(svn r22343) -Change: Remove pixel limiter for query strings.
terkhen <terkhen@openttd.org>
parents:
17492
diff
changeset
|
2206 ShowQueryString(STR_EMPTY, caption, NETWORK_PASSWORD_LENGTH, w, CS_ALPHANUMERAL, QSF_NONE); |
14994
7a1b8f9042a1
(svn r19606) -Codechange: remove global variable pw_type
smatz <smatz@openttd.org>
parents:
14676
diff
changeset
|
2207 } |
7a1b8f9042a1
(svn r19606) -Codechange: remove global variable pw_type
smatz <smatz@openttd.org>
parents:
14676
diff
changeset
|
2208 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2209 |
7998
c23b6367e55b
(svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents:
7997
diff
changeset
|
2210 /** 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
|
2211 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
|
2212 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
|
2213 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
|
2214 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
|
2215 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
|
2216 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
|
2217 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
|
2218 }; |
c23b6367e55b
(svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents:
7997
diff
changeset
|
2219 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
2220 struct NetworkCompanyPasswordWindow : public QueryStringBaseWindow { |
13367
4f4c452950cc
(svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
2221 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
|
2222 { |
13367
4f4c452950cc
(svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
2223 this->InitNested(desc, 0); |
4f4c452950cc
(svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
2224 |
9241
8299dc138e1c
(svn r13107) -Codechange: make NetworkCompanyPasswordWindow and SelectPlayerFaceWindow children of PlayerCompanyWindow.
glx <glx@openttd.org>
parents:
9182
diff
changeset
|
2225 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
|
2226 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
|
2227 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
|
2228 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
|
2229 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
2230 |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
2231 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
|
2232 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
2233 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
|
2234 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
|
2235 } |
7998
c23b6367e55b
(svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents:
7997
diff
changeset
|
2236 |
17117
a6550c45bdb2
(svn r21854) -Codechange: refactor the password setting methods to make it possible to change the password of other companies (on the server)
rubidium <rubidium@openttd.org>
parents:
16659
diff
changeset
|
2237 NetworkChangeCompanyPassword(_local_company, 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
|
2238 } |
7998
c23b6367e55b
(svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents:
7997
diff
changeset
|
2239 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
2240 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
|
2241 { |
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
|
2242 this->DrawWidgets(); |
13041
c00a3e3c405b
(svn r17539) -Codechange: Replace a magic number.
frosch <frosch@openttd.org>
parents:
13034
diff
changeset
|
2243 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
|
2244 } |
7998
c23b6367e55b
(svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents:
7997
diff
changeset
|
2245 |
14409
1eaefde497fd
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
frosch <frosch@openttd.org>
parents:
14258
diff
changeset
|
2246 virtual void OnClick(Point pt, int widget, int click_count) |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
2247 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
2248 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
|
2249 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
|
2250 this->OnOk(); |
15626
33d3500b2a62
(svn r20289) -Codechange: Unify fall through coding style.
terkhen <terkhen@openttd.org>
parents:
15623
diff
changeset
|
2251 /* FALL THROUGH */ |
7998
c23b6367e55b
(svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents:
7997
diff
changeset
|
2252 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
2253 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
|
2254 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
|
2255 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
|
2256 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
2257 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
|
2258 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
|
2259 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
|
2260 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
|
2261 } |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
2262 } |
7998
c23b6367e55b
(svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents:
7997
diff
changeset
|
2263 |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
2264 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
|
2265 { |
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a side effect this removes quite a lot of WP macro usages and a few global variables.
rubidium <rubidium@openttd.org>
parents:
9178
diff
changeset
|
2266 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
|
2267 } |
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
|
2268 |
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
|
2269 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
|
2270 { |
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
|
2271 EventState state = ES_NOT_HANDLED; |
14052
a2be9df79ee0
(svn r18595) -Fix (r18277): one couldn't enter test via the keyboard in the company password window. Also replace a magic number with a enumified constant.
rubidium <rubidium@openttd.org>
parents:
14046
diff
changeset
|
2272 switch (this->HandleEditBoxKey(NCPWW_PASSWORD, 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
|
2273 default: break; |
7ebf43f7c36b
(svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents:
10292
diff
changeset
|
2274 |
7ebf43f7c36b
(svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents:
10292
diff
changeset
|
2275 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
|
2276 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
|
2277 /* 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
|
2278 |
10295
7ebf43f7c36b
(svn r14534) -Codechange [FS#2382]: Enumify magic return values of HandleEditBox function (Zuu)
glx <glx@openttd.org>
parents:
10292
diff
changeset
|
2279 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
|
2280 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
|
2281 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
|
2282 } |
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
|
2283 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
|
2284 } |
10547
0b7be1ee92c5
(svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents:
10480
diff
changeset
|
2285 |
0b7be1ee92c5
(svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents:
10480
diff
changeset
|
2286 virtual void OnOpenOSKWindow(int wid) |
0b7be1ee92c5
(svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents:
10480
diff
changeset
|
2287 { |
0b7be1ee92c5
(svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents:
10480
diff
changeset
|
2288 ShowOnScreenKeyboard(this, wid, NCPWW_CANCEL, NCPWW_OK); |
0b7be1ee92c5
(svn r14804) -Codechange: unify opening the OSK (Zuu)
rubidium <rubidium@openttd.org>
parents:
10480
diff
changeset
|
2289 } |
9179
3b7b689031d6
(svn r13042) -Codechange: make a class of CreateScenarioWindow, GenerateLandscapeWindow, NetworkChatWindow, NetworkCompanyPasswordWindow, NetworkGameWindow, NetworkStartServerWindow, QueryStringWindow, SaveLoadWindow. All these classes depended on the 'querystr_d' object which is now put into QueryStringBaseWindow. As a 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 |
13367
4f4c452950cc
(svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
2292 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
|
2293 NWidget(NWID_HORIZONTAL), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
2294 NWidget(WWT_CLOSEBOX, COLOUR_GREY), |
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
2295 NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_COMPANY_PASSWORD_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
|
2296 EndContainer(), |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
2297 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
|
2298 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
|
2299 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
|
2300 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
|
2301 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
|
2302 EndContainer(), |
13367
4f4c452950cc
(svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
2303 NWidget(NWID_HORIZONTAL), SetPIP(5, 0, 5), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
2304 NWidget(NWID_SPACER), SetFill(1, 0), |
11847
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
2305 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
|
2306 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
|
2307 EndContainer(), |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
2308 EndContainer(), |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
2309 EndContainer(), |
13367
4f4c452950cc
(svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
2310 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
2311 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, NCPWW_CANCEL), SetFill(1, 0), SetDataTip(STR_BUTTON_CANCEL, STR_COMPANY_PASSWORD_CANCEL), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
2312 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, NCPWW_OK), SetFill(1, 0), 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
|
2313 EndContainer(), |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
2314 }; |
add0648f33b0
(svn r16237) -Codechange: Add nested widgets to remaining network windows.
alberth <alberth@openttd.org>
parents:
11846
diff
changeset
|
2315 |
13367
4f4c452950cc
(svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
2316 static const WindowDesc _network_company_password_window_desc( |
13798
6f820ae12bb3
(svn r18324) -Codechange: there's no need for a default size when the window isn't resizable
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
2317 WDP_AUTO, 0, 0, |
7998
c23b6367e55b
(svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents:
7997
diff
changeset
|
2318 WC_COMPANY_PASSWORD_WINDOW, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13726
diff
changeset
|
2319 WDF_UNCLICK_BUTTONS, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13556
diff
changeset
|
2320 _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
|
2321 ); |
7998
c23b6367e55b
(svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents:
7997
diff
changeset
|
2322 |
9241
8299dc138e1c
(svn r13107) -Codechange: make NetworkCompanyPasswordWindow and SelectPlayerFaceWindow children of PlayerCompanyWindow.
glx <glx@openttd.org>
parents:
9182
diff
changeset
|
2323 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
|
2324 { |
c23b6367e55b
(svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents:
7997
diff
changeset
|
2325 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
|
2326 |
13367
4f4c452950cc
(svn r17876) -Codechange: make the network company password window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
2327 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
|
2328 } |
c23b6367e55b
(svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium <rubidium@openttd.org>
parents:
7997
diff
changeset
|
2329 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2330 #endif /* ENABLE_NETWORK */ |