annotate src/main_gui.cpp @ 18692:90d395fc678d draft

(svn r23540) -Codechange: unify and document vehicle widgets
author rubidium <rubidium@openttd.org>
date Fri, 16 Dec 2011 16:58:55 +0000
parents b30160d770d8
children 631c14db8f5a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1 /* $Id$ */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2
12778
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12632
diff changeset
3 /*
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12632
diff changeset
4 * This file is part of OpenTTD.
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12632
diff changeset
5 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12632
diff changeset
6 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12632
diff changeset
7 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12632
diff changeset
8 */
bc7926153e19 (svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents: 12632
diff changeset
9
9111
d48433370037 (svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium <rubidium@openttd.org>
parents: 8994
diff changeset
10 /** @file main_gui.cpp Handling of the main viewport. */
6201
3b141366478a (svn r8987) -Cleanup: doxygen changes. Again. Mostly (still) @files missing tags and (more than just) a few comments style.
belugas <belugas@openttd.org>
parents: 5894
diff changeset
11
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
12 #include "stdafx.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
13 #include "currency.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
14 #include "spritecache.h"
8107
f65cf2bc3255 (svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium <rubidium@openttd.org>
parents: 8106
diff changeset
15 #include "window_gui.h"
f65cf2bc3255 (svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium <rubidium@openttd.org>
parents: 8106
diff changeset
16 #include "window_func.h"
f65cf2bc3255 (svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium <rubidium@openttd.org>
parents: 8106
diff changeset
17 #include "textbuf_gui.h"
8224
c45446125bf0 (svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium <rubidium@openttd.org>
parents: 8214
diff changeset
18 #include "viewport_func.h"
8116
9cc845deddfe (svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium <rubidium@openttd.org>
parents: 8114
diff changeset
19 #include "command_func.h"
9336
5287277c4972 (svn r13228) -Codechange: split console.h.
rubidium <rubidium@openttd.org>
parents: 9301
diff changeset
20 #include "console_gui.h"
17979
5302cd55d676 (svn r22788) -Codechange: move modal progress related functions and variables to progress.cpp/h
rubidium <rubidium@openttd.org>
parents: 17976
diff changeset
21 #include "progress.h"
6427
2437ed7b277c (svn r9563) -Feature: Add more finer control to transparency options, including a new toolbar, accessible from the map menu or Ctrl X. Patch by Wolf01.
peter1138 <peter1138@openttd.org>
parents: 6357
diff changeset
22 #include "transparency_gui.h"
17278
84f869ec145a (svn r22018) -Cleanup: remove some (now) unneeded includes of functions.h
rubidium <rubidium@openttd.org>
parents: 17248
diff changeset
23 #include "map_func.h"
8157
019833e42fda (svn r11719) -Codechange: split sound.h in a header with types and one with functions.
rubidium <rubidium@openttd.org>
parents: 8149
diff changeset
24 #include "sound_func.h"
7849
e6ee8bfd9045 (svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
belugas <belugas@openttd.org>
parents: 7824
diff changeset
25 #include "transparency.h"
8114
2d6af5d7a142 (svn r11675) -Codechange: split the string types from the string functions.
rubidium <rubidium@openttd.org>
parents: 8111
diff changeset
26 #include "strings_func.h"
8123
c26c28875749 (svn r11684) -Codechange: split gfx.h in a type and functional header.
rubidium <rubidium@openttd.org>
parents: 8121
diff changeset
27 #include "zoom_func.h"
10208
39cf8eebfda5 (svn r14422) -Codechange: also reflect the changes of r14421 in the filenames.
rubidium <rubidium@openttd.org>
parents: 10207
diff changeset
28 #include "company_base.h"
39cf8eebfda5 (svn r14422) -Codechange: also reflect the changes of r14421 in the filenames.
rubidium <rubidium@openttd.org>
parents: 10207
diff changeset
29 #include "company_func.h"
8723
36823c86c7f1 (svn r12398) -Codechange [FS#1770]: Move toolbar related code to it's own little neighbourhood. Based on a patch by Dominik.
rubidium <rubidium@openttd.org>
parents: 8615
diff changeset
30 #include "toolbar_gui.h"
9248
2588c85f3a5a (svn r13114) -Codechange: use InvalidateData instead of direct window access to modify the state of the statusbar from outside the statusbar.
rubidium <rubidium@openttd.org>
parents: 9240
diff changeset
31 #include "statusbar_gui.h"
9127
428852b86d4d (svn r12987) -Codechange: split viewport and tile selection.
rubidium <rubidium@openttd.org>
parents: 9116
diff changeset
32 #include "tilehighlight_func.h"
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
33 #include "hotkeys.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
34
16726
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
35 #include "saveload/saveload.h"
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
36
18680
e87c7c30e606 (svn r23528) -Codechange: move widget enums to widgets/NNN_type.h
truebrain <truebrain@openttd.org>
parents: 18677
diff changeset
37 #include "widgets/main_widget.h"
e87c7c30e606 (svn r23528) -Codechange: move widget enums to widgets/NNN_type.h
truebrain <truebrain@openttd.org>
parents: 18677
diff changeset
38
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
39 #include "network/network.h"
9428
ba7cdcf21f4c (svn r13343) -Codechange: reorder/move variable/functions in the network headers so that nothing from the network directory needs to include basically all network headers.
rubidium <rubidium@openttd.org>
parents: 9413
diff changeset
40 #include "network/network_func.h"
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
41 #include "network/network_gui.h"
10468
0edf9b619634 (svn r14723) -Codechange: shuffling some stuff around to reduce indirect #include dependencies.
rubidium <rubidium@openttd.org>
parents: 10462
diff changeset
42 #include "network/network_base.h"
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
43
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
44 #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
45 #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
46
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
47 static int _rename_id = 1;
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 int _rename_what = -1;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
49
14230
95250f9a5035 (svn r18781) -Codechange: pass the CommandCost to the callback instead of whether it succeeded or not.
rubidium <rubidium@openttd.org>
parents: 13950
diff changeset
50 void CcGiveMoney(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
6847
506a6e1063f4 (svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium <rubidium@openttd.org>
parents: 6845
diff changeset
51 {
6898
a7d1b5936638 (svn r10145) -Fix: make compiling with networking disabled (again) possible.
rubidium <rubidium@openttd.org>
parents: 6857
diff changeset
52 #ifdef ENABLE_NETWORK
14230
95250f9a5035 (svn r18781) -Codechange: pass the CommandCost to the callback instead of whether it succeeded or not.
rubidium <rubidium@openttd.org>
parents: 13950
diff changeset
53 if (result.Failed() || !_settings_game.economy.give_money) return;
6847
506a6e1063f4 (svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium <rubidium@openttd.org>
parents: 6845
diff changeset
54
15002
baf0e12ad2b4 (svn r19614) -Codechange: "it's" => "its" where appropriate
smatz <smatz@openttd.org>
parents: 14258
diff changeset
55 /* Inform the company of the action of one of its clients (controllers). */
10507
5e0fb429b3ae (svn r14764) -Codechange: make the '***' chat messages like "Game paused (not enough players)" fully translateable.
rubidium <rubidium@openttd.org>
parents: 10499
diff changeset
56 char msg[64];
5e0fb429b3ae (svn r14764) -Codechange: make the '***' chat messages like "Game paused (not enough players)" fully translateable.
rubidium <rubidium@openttd.org>
parents: 10499
diff changeset
57 SetDParam(0, p2);
5e0fb429b3ae (svn r14764) -Codechange: make the '***' chat messages like "Game paused (not enough players)" fully translateable.
rubidium <rubidium@openttd.org>
parents: 10499
diff changeset
58 GetString(msg, STR_COMPANY_NAME, lastof(msg));
6847
506a6e1063f4 (svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium <rubidium@openttd.org>
parents: 6845
diff changeset
59
506a6e1063f4 (svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium <rubidium@openttd.org>
parents: 6845
diff changeset
60 if (!_network_server) {
10507
5e0fb429b3ae (svn r14764) -Codechange: make the '***' chat messages like "Game paused (not enough players)" fully translateable.
rubidium <rubidium@openttd.org>
parents: 10499
diff changeset
61 NetworkClientSendChat(NETWORK_ACTION_GIVE_MONEY, DESTTYPE_TEAM, p2, msg, p1);
6847
506a6e1063f4 (svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium <rubidium@openttd.org>
parents: 6845
diff changeset
62 } else {
10507
5e0fb429b3ae (svn r14764) -Codechange: make the '***' chat messages like "Game paused (not enough players)" fully translateable.
rubidium <rubidium@openttd.org>
parents: 10499
diff changeset
63 NetworkServerSendChat(NETWORK_ACTION_GIVE_MONEY, DESTTYPE_TEAM, p2, msg, CLIENT_ID_SERVER, p1);
6847
506a6e1063f4 (svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium <rubidium@openttd.org>
parents: 6845
diff changeset
64 }
6898
a7d1b5936638 (svn r10145) -Fix: make compiling with networking disabled (again) possible.
rubidium <rubidium@openttd.org>
parents: 6857
diff changeset
65 #endif /* ENABLE_NETWORK */
6847
506a6e1063f4 (svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium <rubidium@openttd.org>
parents: 6845
diff changeset
66 }
506a6e1063f4 (svn r10087) -Fix [FS#834]: multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once.
rubidium <rubidium@openttd.org>
parents: 6845
diff changeset
67
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
68 void HandleOnEditText(const char *str)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
69 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
70 switch (_rename_what) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
71 #ifdef ENABLE_NETWORK
6201
3b141366478a (svn r8987) -Cleanup: doxygen changes. Again. Mostly (still) @files missing tags and (more than just) a few comments style.
belugas <belugas@openttd.org>
parents: 5894
diff changeset
72 case 3: { // Give money, you can only give money in excess of loan
13444
bc21e507dd03 (svn r17953) -Fix: when you start giving money (input window for amount), then get moved to spectators and you click 'Ok' a crash would occur
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
73 const Company *c = Company::GetIfValid(_local_company);
bc21e507dd03 (svn r17953) -Fix: when you start giving money (input window for amount), then get moved to spectators and you click 'Ok' a crash would occur
rubidium <rubidium@openttd.org>
parents: 13344
diff changeset
74 if (c == NULL) 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: 10145
diff changeset
75 Money money = min(c->money - c->current_loan, (Money)(atoi(str) / _currency->rate));
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
7922
ff1975ced735 (svn r11475) -Codechange: rename clamp and clampu to Clamp and ClampU to fit with the coding style
skidd13 <skidd13@openttd.org>
parents: 7889
diff changeset
77 uint32 money_c = Clamp(ClampToI32(money), 0, 20000000); // Clamp between 20 million and 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
78
6201
3b141366478a (svn r8987) -Cleanup: doxygen changes. Again. Mostly (still) @files missing tags and (more than just) a few comments style.
belugas <belugas@openttd.org>
parents: 5894
diff changeset
79 /* Give 'id' the money, and substract it from ourself */
12632
e41943276802 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents: 12581
diff changeset
80 DoCommandP(0, money_c, _rename_id, CMD_GIVE_MONEY | CMD_MSG(STR_ERROR_INSUFFICIENT_FUNDS), CcGiveMoney, str);
15618
e4640748f223 (svn r20281) -Codechange: unify case scope closure + break coding style
rubidium <rubidium@openttd.org>
parents: 15552
diff changeset
81 break;
e4640748f223 (svn r20281) -Codechange: unify case scope closure + break coding style
rubidium <rubidium@openttd.org>
parents: 15552
diff changeset
82 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
83 #endif /* 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
84 default: NOT_REACHED();
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
85 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
86
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
87 _rename_id = _rename_what = -1;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
88 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
89
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
90 /**
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
91 * This code is shared for the majority of the pushbuttons.
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
92 * Handles e.g. the pressing of a button (to build things), playing of click sound and sets certain parameters
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
93 *
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
94 * @param w Window which called the function
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
95 * @param widget ID of the widget (=button) that called this function
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
96 * @param cursor How should the cursor image change? E.g. cursor with depot image in it
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
97 * @param mode Tile highlighting mode, e.g. drawing a rectangle or a dot on the ground
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
98 * @return true if the button is clicked, false if it's unclicked
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
99 */
16892
1e94199f85d6 (svn r21627) -Codechange: Remove _place_proc global variable.
alberth <alberth@openttd.org>
parents: 16726
diff changeset
100 bool HandlePlacePushButton(Window *w, int widget, CursorID cursor, HighLightStyle 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
101 {
7997
d109780d515b (svn r11555) -Codechange: use the new members introduced in r11551.
rubidium <rubidium@openttd.org>
parents: 7954
diff changeset
102 if (w->IsWidgetDisabled(widget)) return false;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
103
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
104 SndPlayFx(SND_15_BEEP);
9116
44beb31166aa (svn r12976) -Codechange: use w->SetDirty() instead of SetWindowDirty(w) when it's certain that w != NULL.
rubidium <rubidium@openttd.org>
parents: 9111
diff changeset
105 w->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
106
7997
d109780d515b (svn r11555) -Codechange: use the new members introduced in r11551.
rubidium <rubidium@openttd.org>
parents: 7954
diff changeset
107 if (w->IsWidgetLowered(widget)) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
108 ResetObjectToPlace();
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
109 return false;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
110 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
111
5668
3d6d9bff3dd8 (svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138 <peter1138@openttd.org>
parents: 5601
diff changeset
112 SetObjectToPlace(cursor, PAL_NONE, mode, w->window_class, w->window_number);
7997
d109780d515b (svn r11555) -Codechange: use the new members introduced in r11551.
rubidium <rubidium@openttd.org>
parents: 7954
diff changeset
113 w->LowerWidget(widget);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
114 return true;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
115 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
116
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
117
14230
95250f9a5035 (svn r18781) -Codechange: pass the CommandCost to the callback instead of whether it succeeded or not.
rubidium <rubidium@openttd.org>
parents: 13950
diff changeset
118 void CcPlaySound10(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
119 {
14230
95250f9a5035 (svn r18781) -Codechange: pass the CommandCost to the callback instead of whether it succeeded or not.
rubidium <rubidium@openttd.org>
parents: 13950
diff changeset
120 if (result.Succeeded()) SndPlayTileFx(SND_12_EXPLOSION, tile);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
121 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
122
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
123 #ifdef ENABLE_NETWORK
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: 10145
diff changeset
124 void ShowNetworkGiveMoneyWindow(CompanyID company)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
125 {
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: 10145
diff changeset
126 _rename_id = company;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
127 _rename_what = 3;
17579
105b4e4eb168 (svn r22343) -Change: Remove pixel limiter for query strings.
terkhen <terkhen@openttd.org>
parents: 17486
diff changeset
128 ShowQueryString(STR_EMPTY, STR_NETWORK_GIVE_MONEY_CAPTION, 30, NULL, CS_NUMERAL, QSF_NONE);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
129 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
130 #endif /* 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
131
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
132
16310
cced8cded106 (svn r21018) -Doc: Add Doxygen comments to some function.
alberth <alberth@openttd.org>
parents: 16292
diff changeset
133 /**
cced8cded106 (svn r21018) -Doc: Add Doxygen comments to some function.
alberth <alberth@openttd.org>
parents: 16292
diff changeset
134 * Zooms a viewport in a window in or out.
cced8cded106 (svn r21018) -Doc: Add Doxygen comments to some function.
alberth <alberth@openttd.org>
parents: 16292
diff changeset
135 * @param how Zooming direction.
cced8cded106 (svn r21018) -Doc: Add Doxygen comments to some function.
alberth <alberth@openttd.org>
parents: 16292
diff changeset
136 * @param w Window owning the viewport.
cced8cded106 (svn r21018) -Doc: Add Doxygen comments to some function.
alberth <alberth@openttd.org>
parents: 16292
diff changeset
137 * @return Returns \c true if zooming step could be done, \c false if further zooming is not possible.
cced8cded106 (svn r21018) -Doc: Add Doxygen comments to some function.
alberth <alberth@openttd.org>
parents: 16292
diff changeset
138 * @note No button handling or what so ever is done.
cced8cded106 (svn r21018) -Doc: Add Doxygen comments to some function.
alberth <alberth@openttd.org>
parents: 16292
diff changeset
139 */
15178
7aa184b4f6c9 (svn r19807) -Codechange: instead of having an unnamed enum and passing it as an int, name the enum and pass that
rubidium <rubidium@openttd.org>
parents: 15002
diff changeset
140 bool DoZoomInOutWindow(ZoomStateChange how, Window *w)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
141 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
142 ViewPort *vp;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
143
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
144 assert(w != NULL);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
145 vp = w->viewport;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
146
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
147 switch (how) {
15184
68b7b29a6b7e (svn r19813) -Fix (r19807): initialising viewports kinda failed
rubidium <rubidium@openttd.org>
parents: 15178
diff changeset
148 case ZOOM_NONE:
68b7b29a6b7e (svn r19813) -Fix (r19807): initialising viewports kinda failed
rubidium <rubidium@openttd.org>
parents: 15178
diff changeset
149 /* On initialisation of the viewport we don't do anything. */
68b7b29a6b7e (svn r19813) -Fix (r19807): initialising viewports kinda failed
rubidium <rubidium@openttd.org>
parents: 15178
diff changeset
150 break;
68b7b29a6b7e (svn r19813) -Fix (r19807): initialising viewports kinda failed
rubidium <rubidium@openttd.org>
parents: 15178
diff changeset
151
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
152 case ZOOM_IN:
18470
64ea4c57dcb9 (svn r23314) -Add: Add settings to restrict viewport zoom levels.
peter1138 <peter1138@openttd.org>
parents: 18111
diff changeset
153 if (vp->zoom <= _settings_client.gui.zoom_min) return false;
8095
538d8ce486cd (svn r11656) -Codechange: add ZOOM_LVL_BEGIN and postfix operators so ZoomLevel can be used in some iterations
smatz <smatz@openttd.org>
parents: 8082
diff changeset
154 vp->zoom = (ZoomLevel)((int)vp->zoom - 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
155 vp->virtual_width >>= 1;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
156 vp->virtual_height >>= 1;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
157
9184
a7020e34c67b (svn r13047) -Codechange: remove vp_d
glx <glx@openttd.org>
parents: 9165
diff changeset
158 w->viewport->scrollpos_x += vp->virtual_width >> 1;
a7020e34c67b (svn r13047) -Codechange: remove vp_d
glx <glx@openttd.org>
parents: 9165
diff changeset
159 w->viewport->scrollpos_y += vp->virtual_height >> 1;
a7020e34c67b (svn r13047) -Codechange: remove vp_d
glx <glx@openttd.org>
parents: 9165
diff changeset
160 w->viewport->dest_scrollpos_x = w->viewport->scrollpos_x;
a7020e34c67b (svn r13047) -Codechange: remove vp_d
glx <glx@openttd.org>
parents: 9165
diff changeset
161 w->viewport->dest_scrollpos_y = w->viewport->scrollpos_y;
15695
f6bb2f4578b7 (svn r20361) -Fix [FS#3989]: Stop vehicle following after zooming out.
terkhen <terkhen@openttd.org>
parents: 15618
diff changeset
162 w->viewport->follow_vehicle = INVALID_VEHICLE;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
163 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
164 case ZOOM_OUT:
18470
64ea4c57dcb9 (svn r23314) -Add: Add settings to restrict viewport zoom levels.
peter1138 <peter1138@openttd.org>
parents: 18111
diff changeset
165 if (vp->zoom >= _settings_client.gui.zoom_max) return false;
8095
538d8ce486cd (svn r11656) -Codechange: add ZOOM_LVL_BEGIN and postfix operators so ZoomLevel can be used in some iterations
smatz <smatz@openttd.org>
parents: 8082
diff changeset
166 vp->zoom = (ZoomLevel)((int)vp->zoom + 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
167
9184
a7020e34c67b (svn r13047) -Codechange: remove vp_d
glx <glx@openttd.org>
parents: 9165
diff changeset
168 w->viewport->scrollpos_x -= vp->virtual_width >> 1;
a7020e34c67b (svn r13047) -Codechange: remove vp_d
glx <glx@openttd.org>
parents: 9165
diff changeset
169 w->viewport->scrollpos_y -= vp->virtual_height >> 1;
a7020e34c67b (svn r13047) -Codechange: remove vp_d
glx <glx@openttd.org>
parents: 9165
diff changeset
170 w->viewport->dest_scrollpos_x = w->viewport->scrollpos_x;
a7020e34c67b (svn r13047) -Codechange: remove vp_d
glx <glx@openttd.org>
parents: 9165
diff changeset
171 w->viewport->dest_scrollpos_y = w->viewport->scrollpos_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
172
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
173 vp->virtual_width <<= 1;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
174 vp->virtual_height <<= 1;
15695
f6bb2f4578b7 (svn r20361) -Fix [FS#3989]: Stop vehicle following after zooming out.
terkhen <terkhen@openttd.org>
parents: 15618
diff changeset
175 w->viewport->follow_vehicle = INVALID_VEHICLE;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
176 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
177 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
178 if (vp != NULL) { // the vp can be null when how == ZOOM_NONE
9184
a7020e34c67b (svn r13047) -Codechange: remove vp_d
glx <glx@openttd.org>
parents: 9165
diff changeset
179 vp->virtual_left = w->viewport->scrollpos_x;
a7020e34c67b (svn r13047) -Codechange: remove vp_d
glx <glx@openttd.org>
parents: 9165
diff changeset
180 vp->virtual_top = w->viewport->scrollpos_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
181 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
182 /* Update the windows that have zoom-buttons to perhaps disable their buttons */
13168
b3177ea0bd67 (svn r17673) -Codechange: make InvalidateThisWindowData a function of the window class
rubidium <rubidium@openttd.org>
parents: 13072
diff changeset
183 w->InvalidateData();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
184 return true;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
185 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
186
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
187 void ZoomInOrOutToCursorWindow(bool in, Window *w)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
188 {
8723
36823c86c7f1 (svn r12398) -Codechange [FS#1770]: Move toolbar related code to it's own little neighbourhood. Based on a patch by Dominik.
rubidium <rubidium@openttd.org>
parents: 8615
diff changeset
189 assert(w != 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
190
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
191 if (_game_mode != GM_MENU) {
8723
36823c86c7f1 (svn r12398) -Codechange [FS#1770]: Move toolbar related code to it's own little neighbourhood. Based on a patch by Dominik.
rubidium <rubidium@openttd.org>
parents: 8615
diff changeset
192 ViewPort *vp = w->viewport;
18470
64ea4c57dcb9 (svn r23314) -Add: Add settings to restrict viewport zoom levels.
peter1138 <peter1138@openttd.org>
parents: 18111
diff changeset
193 if ((in && vp->zoom <= _settings_client.gui.zoom_min) || (!in && vp->zoom >= _settings_client.gui.zoom_max)) 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
194
10642
29bc871ff8d1 (svn r14944) -Cleanup: add spaces around some operators
rubidium <rubidium@openttd.org>
parents: 10507
diff changeset
195 Point pt = GetTileZoomCenterWindow(in, w);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
196 if (pt.x != -1) {
11375
1d342902ac94 (svn r15725) -Fix: centering on a vehicle didn't respect its z coordinate
smatz <smatz@openttd.org>
parents: 11368
diff changeset
197 ScrollWindowTo(pt.x, pt.y, -1, w, 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
198
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
199 DoZoomInOutWindow(in ? ZOOM_IN : ZOOM_OUT, w);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
200 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
201 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
202 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
203
12581
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
204 static const struct NWidgetPart _nested_main_window_widgets[] = {
18688
b30160d770d8 (svn r23536) -Codechange: document and rename widgets to be consistent and understandable
truebrain <truebrain@openttd.org>
parents: 18680
diff changeset
205 NWidget(NWID_VIEWPORT, INVALID_COLOUR, WID_M_VIEWPORT), SetResize(1, 1),
12581
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
206 };
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
207
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
208 static const WindowDesc _main_window_desc(
13796
3e68f07eb821 (svn r18322) -Codechange: remove the WDP duplication; no need to tell the same twice.
rubidium <rubidium@openttd.org>
parents: 13792
diff changeset
209 WDP_MANUAL, 0, 0,
12581
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
210 WC_MAIN_WINDOW, WC_NONE,
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
211 0,
13564
bae287664b02 (svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents: 13444
diff changeset
212 _nested_main_window_widgets, lengthof(_nested_main_window_widgets)
12581
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
213 );
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
214
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
215 enum {
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
216 GHK_QUIT,
16726
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
217 GHK_ABANDON,
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
218 GHK_CONSOLE,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
219 GHK_BOUNDING_BOXES,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
220 GHK_CENTER,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
221 GHK_CENTER_ZOOM,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
222 GHK_RESET_OBJECT_TO_PLACE,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
223 GHK_DELETE_WINDOWS,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
224 GHK_DELETE_NONVITAL_WINDOWS,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
225 GHK_REFRESH_SCREEN,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
226 GHK_CRASH,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
227 GHK_MONEY,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
228 GHK_UPDATE_COORDS,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
229 GHK_TOGGLE_TRANSPARENCY,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
230 GHK_TOGGLE_INVISIBILITY = GHK_TOGGLE_TRANSPARENCY + 9,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
231 GHK_TRANSPARENCY_TOOLBAR = GHK_TOGGLE_INVISIBILITY + 8,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
232 GHK_TRANSPARANCY,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
233 GHK_CHAT,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
234 GHK_CHAT_ALL,
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
235 GHK_CHAT_COMPANY,
16292
96db4d85ff89 (svn r21000) -Feature[tte]: chat directly to the server or a bot/admin/irc channel monitoring the server (dihedral)
rubidium <rubidium@openttd.org>
parents: 16144
diff changeset
236 GHK_CHAT_SERVER,
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
237 };
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
238
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
239 struct MainWindow : Window
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
240 {
12581
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
241 MainWindow() : Window()
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
242 {
12581
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
243 this->InitNested(&_main_window_desc, 0);
18677
7077d1f6763b (svn r23525) -Codechange: make Window::flags4 WindowFlags instead of uint16, with only values known in WindowFlags (and move out 2 timers to their own variable)
truebrain <truebrain@openttd.org>
parents: 18470
diff changeset
244 CLRBITS(this->flags, WF_WHITE_BORDER);
12581
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
245 ResizeWindow(this, _screen.width, _screen.height);
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
246
18688
b30160d770d8 (svn r23536) -Codechange: document and rename widgets to be consistent and understandable
truebrain <truebrain@openttd.org>
parents: 18680
diff changeset
247 NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(WID_M_VIEWPORT);
12581
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
248 nvp->InitializeViewport(this, TileXY(32, 32), ZOOM_LVL_VIEWPORT);
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
249 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
250
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
251 virtual void OnPaint()
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
252 {
12581
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
253 this->DrawWidgets();
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
254 if (_game_mode == GM_MENU) {
15434
995eaf7f493c (svn r20077) -Codechange: remove the space between "open" and "ttd" in the title screen
yexo <yexo@openttd.org>
parents: 15431
diff changeset
255 static const SpriteID title_sprites[] = {SPR_OTTD_O, SPR_OTTD_P, SPR_OTTD_E, SPR_OTTD_N, SPR_OTTD_T, SPR_OTTD_T, SPR_OTTD_D};
995eaf7f493c (svn r20077) -Codechange: remove the space between "open" and "ttd" in the title screen
yexo <yexo@openttd.org>
parents: 15431
diff changeset
256 static const uint LETTER_SPACING = 10;
15930
ffc487f3e052 (svn r20618) -Fix [FS#4081]: drawing the "OpenTTD" text in the intro game caused crashes with very low resolutions
rubidium <rubidium@openttd.org>
parents: 15695
diff changeset
257 int name_width = (lengthof(title_sprites) - 1) * LETTER_SPACING;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
258
15434
995eaf7f493c (svn r20077) -Codechange: remove the space between "open" and "ttd" in the title screen
yexo <yexo@openttd.org>
parents: 15431
diff changeset
259 for (uint i = 0; i < lengthof(title_sprites); i++) {
995eaf7f493c (svn r20077) -Codechange: remove the space between "open" and "ttd" in the title screen
yexo <yexo@openttd.org>
parents: 15431
diff changeset
260 name_width += GetSpriteSize(title_sprites[i]).width;
995eaf7f493c (svn r20077) -Codechange: remove the space between "open" and "ttd" in the title screen
yexo <yexo@openttd.org>
parents: 15431
diff changeset
261 }
995eaf7f493c (svn r20077) -Codechange: remove the space between "open" and "ttd" in the title screen
yexo <yexo@openttd.org>
parents: 15431
diff changeset
262 int off_x = (this->width - name_width) / 2;
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
263
15434
995eaf7f493c (svn r20077) -Codechange: remove the space between "open" and "ttd" in the title screen
yexo <yexo@openttd.org>
parents: 15431
diff changeset
264 for (uint i = 0; i < lengthof(title_sprites); i++) {
995eaf7f493c (svn r20077) -Codechange: remove the space between "open" and "ttd" in the title screen
yexo <yexo@openttd.org>
parents: 15431
diff changeset
265 DrawSprite(title_sprites[i], PAL_NONE, off_x, 50);
995eaf7f493c (svn r20077) -Codechange: remove the space between "open" and "ttd" in the title screen
yexo <yexo@openttd.org>
parents: 15431
diff changeset
266 off_x += GetSpriteSize(title_sprites[i]).width + LETTER_SPACING;
995eaf7f493c (svn r20077) -Codechange: remove the space between "open" and "ttd" in the title screen
yexo <yexo@openttd.org>
parents: 15431
diff changeset
267 }
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
268 }
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
269 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
270
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: 9273
diff changeset
271 virtual EventState OnKeyPress(uint16 key, uint16 keycode)
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
272 {
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
273 int num = CheckHotkeyMatch(global_hotkeys, keycode, this);
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
274 if (num == GHK_QUIT) {
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
275 HandleExitGameRequest();
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
276 return ES_HANDLED;
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
277 }
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
278
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
279 /* Disable all key shortcuts, except quit shortcuts when
11361
02313cc6114e (svn r15711) -Codechange: lots of whitespace cleanup/fixes
rubidium <rubidium@openttd.org>
parents: 11085
diff changeset
280 * generating the world, otherwise they create threading
02313cc6114e (svn r15711) -Codechange: lots of whitespace cleanup/fixes
rubidium <rubidium@openttd.org>
parents: 11085
diff changeset
281 * problem during the generating, resulting in random
02313cc6114e (svn r15711) -Codechange: lots of whitespace cleanup/fixes
rubidium <rubidium@openttd.org>
parents: 11085
diff changeset
282 * assertions that are hard to trigger and debug */
17976
776acb0fd15e (svn r22785) -Codechange: rename IsGeneratingWorld to HasModalProgress
rubidium <rubidium@openttd.org>
parents: 17879
diff changeset
283 if (HasModalProgress()) return ES_NOT_HANDLED;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
284
16726
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
285 switch (num) {
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
286 case GHK_ABANDON:
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
287 /* No point returning from the main menu to itself */
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
288 if (_game_mode == GM_MENU) return ES_HANDLED;
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
289 if (_settings_client.gui.autosave_on_exit) {
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
290 DoExitSave();
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
291 _switch_mode = SM_MENU;
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
292 } else {
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
293 AskExitToGameMenu();
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
294 }
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
295 return ES_HANDLED;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
296
16726
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
297 case GHK_CONSOLE:
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
298 IConsoleSwitch();
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
299 return ES_HANDLED;
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
300
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
301 case GHK_BOUNDING_BOXES:
17879
9310e39c80ce (svn r22675) -Change: Add a menu entry for the sprite bounding box debuging feature in the help menu and enable bounding boxes only in conjunction with the newgrf developer tools
planetmaker <planetmaker@openttd.org>
parents: 17634
diff changeset
302 ToggleBoundingBoxes();
16726
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
303 return ES_HANDLED;
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
304 }
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
305
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: 9273
diff changeset
306 if (_game_mode == GM_MENU) return ES_NOT_HANDLED;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
307
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
308 switch (num) {
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
309 case GHK_CENTER:
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
310 case GHK_CENTER_ZOOM: {
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
311 Point pt = GetTileBelowCursor();
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
312 if (pt.x != -1) {
18470
64ea4c57dcb9 (svn r23314) -Add: Add settings to restrict viewport zoom levels.
peter1138 <peter1138@openttd.org>
parents: 18111
diff changeset
313 bool instant = (num == GHK_CENTER_ZOOM && this->viewport->zoom != _settings_client.gui.zoom_min);
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
314 if (num == GHK_CENTER_ZOOM) MaxZoomInOut(ZOOM_IN, this);
17248
114fbdb11b40 (svn r21988) -Change: Disable smooth scrolling for GHK_CENTER_ZOOM when zooming is also involved.
frosch <frosch@openttd.org>
parents: 17237
diff changeset
315 ScrollMainWindowTo(pt.x, pt.y, -1, instant);
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
316 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
317 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
318 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
319
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
320 case GHK_RESET_OBJECT_TO_PLACE: ResetObjectToPlace(); break;
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
321 case GHK_DELETE_WINDOWS: DeleteNonVitalWindows(); break;
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
322 case GHK_DELETE_NONVITAL_WINDOWS: DeleteAllNonVitalWindows(); break;
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
323 case GHK_REFRESH_SCREEN: MarkWholeScreenDirty(); 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
324
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
325 case GHK_CRASH: // Crash the game
16144
27bb22e4894c (svn r20840) -Fix: make write to NULL pointer volatile so it's not optimised away
smatz <smatz@openttd.org>
parents: 15930
diff changeset
326 *(volatile byte *)0 = 0;
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
327 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
328
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
329 case GHK_MONEY: // Gimme money
17288
32dbb86666ff (svn r22028) -Cleanup: remove traces of a debugging "feature" that got disabled a long time ago
rubidium <rubidium@openttd.org>
parents: 17278
diff changeset
330 /* You can only cheat for money in single player. */
32dbb86666ff (svn r22028) -Cleanup: remove traces of a debugging "feature" that got disabled a long time ago
rubidium <rubidium@openttd.org>
parents: 17278
diff changeset
331 if (!_networking) DoCommandP(0, 10000000, 0, CMD_MONEY_CHEAT);
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
332 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
333
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
334 case GHK_UPDATE_COORDS: // Update the coordinates of all station signs
13950
77bfe67f23bd (svn r18486) -Fix: when switching language and you're getting a different font, recalculate the coordinates/sizes of the viewport signs. Otherwise it gets glitchy or abbreviated (in the smallmap)
rubidium <rubidium@openttd.org>
parents: 13796
diff changeset
335 UpdateAllVirtCoords();
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
336 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
337
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
338 case GHK_TOGGLE_TRANSPARENCY:
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
339 case GHK_TOGGLE_TRANSPARENCY + 1:
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
340 case GHK_TOGGLE_TRANSPARENCY + 2:
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
341 case GHK_TOGGLE_TRANSPARENCY + 3:
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
342 case GHK_TOGGLE_TRANSPARENCY + 4:
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
343 case GHK_TOGGLE_TRANSPARENCY + 5:
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
344 case GHK_TOGGLE_TRANSPARENCY + 6:
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
345 case GHK_TOGGLE_TRANSPARENCY + 7:
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
346 case GHK_TOGGLE_TRANSPARENCY + 8:
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
347 /* Transparency toggle hot keys */
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
348 ToggleTransparency((TransparencyOption)(num - GHK_TOGGLE_TRANSPARENCY));
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
349 MarkWholeScreenDirty();
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
350 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
351
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
352 case GHK_TOGGLE_INVISIBILITY:
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
353 case GHK_TOGGLE_INVISIBILITY + 1:
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
354 case GHK_TOGGLE_INVISIBILITY + 2:
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
355 case GHK_TOGGLE_INVISIBILITY + 3:
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
356 case GHK_TOGGLE_INVISIBILITY + 4:
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
357 case GHK_TOGGLE_INVISIBILITY + 5:
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
358 case GHK_TOGGLE_INVISIBILITY + 6:
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
359 case GHK_TOGGLE_INVISIBILITY + 7:
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
360 /* Invisibility toggle hot keys */
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
361 ToggleInvisibilityWithTransparency((TransparencyOption)(num - GHK_TOGGLE_INVISIBILITY));
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
362 MarkWholeScreenDirty();
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
363 break;
8806
104bbcae351d (svn r12547) -Feature: invisibility options to make objects invisible instead of transparent
smatz <smatz@openttd.org>
parents: 8790
diff changeset
364
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
365 case GHK_TRANSPARENCY_TOOLBAR:
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
366 ShowTransparencyToolbar();
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
367 break;
6427
2437ed7b277c (svn r9563) -Feature: Add more finer control to transparency options, including a new toolbar, accessible from the map menu or Ctrl X. Patch by Wolf01.
peter1138 <peter1138@openttd.org>
parents: 6357
diff changeset
368
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
369 case GHK_TRANSPARANCY:
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
370 ResetRestoreAllTransparency();
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
371 break;
6427
2437ed7b277c (svn r9563) -Feature: Add more finer control to transparency options, including a new toolbar, accessible from the map menu or Ctrl X. Patch by Wolf01.
peter1138 <peter1138@openttd.org>
parents: 6357
diff changeset
372
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
373 #ifdef ENABLE_NETWORK
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
374 case GHK_CHAT: // smart chat; send to team if any, otherwise to all
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
375 if (_networking) {
17598
0a51450014d0 (svn r22362) -Codechange: NetworkFindClientInfoFromClientID -> NetworkClientInfo::GetByClientID
rubidium <rubidium@openttd.org>
parents: 17579
diff changeset
376 const NetworkClientInfo *cio = NetworkClientInfo::GetByClientID(_network_own_client_id);
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
377 if (cio == NULL) break;
5672
e6ba5c304b87 (svn r8132) -Fix (r6824): The game could crash when the chat key (<ENTER>) is pressed too vehemently during the join of the game. Your client's id does not exist in the clients list yet, and returns NULL.
Darkvater <Darkvater@openttd.org>
parents: 5668
diff changeset
378
10460
8ce8857713b8 (svn r14715) -Codechange: move some network code from the main gui file into one of the the network files.
rubidium <rubidium@openttd.org>
parents: 10454
diff changeset
379 ShowNetworkChatQueryWindow(NetworkClientPreferTeamChat(cio) ? DESTTYPE_TEAM : DESTTYPE_BROADCAST, cio->client_playas);
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
380 }
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
381 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
382
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
383 case GHK_CHAT_ALL: // send text message to all clients
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
384 if (_networking) ShowNetworkChatQueryWindow(DESTTYPE_BROADCAST, 0);
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
385 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
386
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
387 case GHK_CHAT_COMPANY: // send text to all team mates
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
388 if (_networking) {
17598
0a51450014d0 (svn r22362) -Codechange: NetworkFindClientInfoFromClientID -> NetworkClientInfo::GetByClientID
rubidium <rubidium@openttd.org>
parents: 17579
diff changeset
389 const NetworkClientInfo *cio = NetworkClientInfo::GetByClientID(_network_own_client_id);
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
390 if (cio == NULL) break;
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
391
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
392 ShowNetworkChatQueryWindow(DESTTYPE_TEAM, cio->client_playas);
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
393 }
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
394 break;
16292
96db4d85ff89 (svn r21000) -Feature[tte]: chat directly to the server or a bot/admin/irc channel monitoring the server (dihedral)
rubidium <rubidium@openttd.org>
parents: 16144
diff changeset
395
96db4d85ff89 (svn r21000) -Feature[tte]: chat directly to the server or a bot/admin/irc channel monitoring the server (dihedral)
rubidium <rubidium@openttd.org>
parents: 16144
diff changeset
396 case GHK_CHAT_SERVER: // send text to the server
96db4d85ff89 (svn r21000) -Feature[tte]: chat directly to the server or a bot/admin/irc channel monitoring the server (dihedral)
rubidium <rubidium@openttd.org>
parents: 16144
diff changeset
397 if (_networking && !_network_server) {
96db4d85ff89 (svn r21000) -Feature[tte]: chat directly to the server or a bot/admin/irc channel monitoring the server (dihedral)
rubidium <rubidium@openttd.org>
parents: 16144
diff changeset
398 ShowNetworkChatQueryWindow(DESTTYPE_CLIENT, CLIENT_ID_SERVER);
96db4d85ff89 (svn r21000) -Feature[tte]: chat directly to the server or a bot/admin/irc channel monitoring the server (dihedral)
rubidium <rubidium@openttd.org>
parents: 16144
diff changeset
399 }
96db4d85ff89 (svn r21000) -Feature[tte]: chat directly to the server or a bot/admin/irc channel monitoring the server (dihedral)
rubidium <rubidium@openttd.org>
parents: 16144
diff changeset
400 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
401 #endif
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
402
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: 9273
diff changeset
403 default: return ES_NOT_HANDLED;
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
404 }
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: 9273
diff changeset
405 return ES_HANDLED;
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
406 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
407
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
408 virtual void OnScroll(Point delta)
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
409 {
17151
f89e4ac875e8 (svn r21889) -Fix [FS#4434]: crash when scrolling outside of the main window (with some video backends)
rubidium <rubidium@openttd.org>
parents: 17066
diff changeset
410 this->viewport->scrollpos_x += ScaleByZoom(delta.x, this->viewport->zoom);
f89e4ac875e8 (svn r21889) -Fix [FS#4434]: crash when scrolling outside of the main window (with some video backends)
rubidium <rubidium@openttd.org>
parents: 17066
diff changeset
411 this->viewport->scrollpos_y += ScaleByZoom(delta.y, this->viewport->zoom);
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
412 this->viewport->dest_scrollpos_x = this->viewport->scrollpos_x;
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
413 this->viewport->dest_scrollpos_y = this->viewport->scrollpos_y;
17066
21cc53f6368d (svn r21803) -Cleanup: Remove unnecessary semicolons.
terkhen <terkhen@openttd.org>
parents: 16892
diff changeset
414 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
415
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
416 virtual void OnMouseWheel(int wheel)
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
417 {
17237
d8b501ee60b3 (svn r21977) -Codechange: Always cal Window::OnMouseWheel(), independent of viewport scroll/zoom settings.
frosch <frosch@openttd.org>
parents: 17151
diff changeset
418 if (_settings_client.gui.scrollwheel_scrolling == 0) {
d8b501ee60b3 (svn r21977) -Codechange: Always cal Window::OnMouseWheel(), independent of viewport scroll/zoom settings.
frosch <frosch@openttd.org>
parents: 17151
diff changeset
419 ZoomInOrOutToCursorWindow(wheel < 0, this);
d8b501ee60b3 (svn r21977) -Codechange: Always cal Window::OnMouseWheel(), independent of viewport scroll/zoom settings.
frosch <frosch@openttd.org>
parents: 17151
diff changeset
420 }
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
421 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
422
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: 13186
diff changeset
423 virtual void OnResize()
12581
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
424 {
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
425 if (this->viewport != NULL) {
18688
b30160d770d8 (svn r23536) -Codechange: document and rename widgets to be consistent and understandable
truebrain <truebrain@openttd.org>
parents: 18680
diff changeset
426 NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(WID_M_VIEWPORT);
12581
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
427 nvp->UpdateViewportCoordinates(this);
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
428 }
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
429 }
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
430
17486
e7672bafbe1c (svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents: 17389
diff changeset
431 /**
e7672bafbe1c (svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents: 17389
diff changeset
432 * 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: 17389
diff changeset
433 * @param data Information about the changed data.
e7672bafbe1c (svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents: 17389
diff changeset
434 * @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: 17389
diff changeset
435 */
e7672bafbe1c (svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents: 17389
diff changeset
436 virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
437 {
17486
e7672bafbe1c (svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
frosch <frosch@openttd.org>
parents: 17389
diff changeset
438 if (!gui_scope) return;
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
439 /* Forward the message to the appropiate toolbar (ingame or scenario editor) */
17389
750d56071240 (svn r22135) -Fix [FS#4523]: When commands need to invalidate windows, process these events asynchronously before the next redraw. Calling window code directly from command scope uses wrong _current_company and might issue nested DoCommands() which interfer with the running command.
frosch <frosch@openttd.org>
parents: 17288
diff changeset
440 InvalidateWindowData(WC_MAIN_TOOLBAR, 0, data, 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
441 }
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
442
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
443 static Hotkey<MainWindow> global_hotkeys[];
9205
a8b1f6fa5f79 (svn r13071) -Codechange: make also a class of the MainWindow.
rubidium <rubidium@openttd.org>
parents: 9184
diff changeset
444 };
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
445
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
446 const uint16 _ghk_quit_keys[] = {'Q' | WKC_CTRL, 'Q' | WKC_META, 0};
16726
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
447 const uint16 _ghk_abandon_keys[] = {'W' | WKC_CTRL, 'W' | WKC_META, 0};
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
448 const uint16 _ghk_chat_keys[] = {WKC_RETURN, 'T', 0};
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
449 const uint16 _ghk_chat_all_keys[] = {WKC_SHIFT | WKC_RETURN, WKC_SHIFT | 'T', 0};
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
450 const uint16 _ghk_chat_company_keys[] = {WKC_CTRL | WKC_RETURN, WKC_CTRL | 'T', 0};
16292
96db4d85ff89 (svn r21000) -Feature[tte]: chat directly to the server or a bot/admin/irc channel monitoring the server (dihedral)
rubidium <rubidium@openttd.org>
parents: 16144
diff changeset
451 const uint16 _ghk_chat_server_keys[] = {WKC_CTRL | WKC_SHIFT | WKC_RETURN, WKC_CTRL | WKC_SHIFT | 'T', 0};
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
452
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
453 Hotkey<MainWindow> MainWindow::global_hotkeys[] = {
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
454 Hotkey<MainWindow>(_ghk_quit_keys, "quit", GHK_QUIT),
16726
e73c78393547 (svn r21459) -Feature(tte) [FS#3217]: Hotkey Ctrl+W for returning to the main menu
planetmaker <planetmaker@openttd.org>
parents: 16310
diff changeset
455 Hotkey<MainWindow>(_ghk_abandon_keys, "abandon", GHK_ABANDON),
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
456 Hotkey<MainWindow>(WKC_BACKQUOTE, "console", GHK_CONSOLE),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
457 Hotkey<MainWindow>('B' | WKC_CTRL, "bounding_boxes", GHK_BOUNDING_BOXES),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
458 Hotkey<MainWindow>('C', "center", GHK_CENTER),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
459 Hotkey<MainWindow>('Z', "center_zoom", GHK_CENTER_ZOOM),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
460 Hotkey<MainWindow>(WKC_ESC, "reset_object_to_place", GHK_RESET_OBJECT_TO_PLACE),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
461 Hotkey<MainWindow>(WKC_DELETE, "delete_windows", GHK_DELETE_WINDOWS),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
462 Hotkey<MainWindow>(WKC_DELETE | WKC_SHIFT, "delete_all_windows", GHK_DELETE_NONVITAL_WINDOWS),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
463 Hotkey<MainWindow>('R' | WKC_CTRL, "refresh_screen", GHK_REFRESH_SCREEN),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
464 #if defined(_DEBUG)
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
465 Hotkey<MainWindow>('0' | WKC_ALT, "crash_game", GHK_CRASH),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
466 Hotkey<MainWindow>('1' | WKC_ALT, "money", GHK_MONEY),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
467 Hotkey<MainWindow>('2' | WKC_ALT, "update_coordinates", GHK_UPDATE_COORDS),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
468 #endif
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
469 Hotkey<MainWindow>('1' | WKC_CTRL, "transparency_signs", GHK_TOGGLE_TRANSPARENCY),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
470 Hotkey<MainWindow>('2' | WKC_CTRL, "transparency_trees", GHK_TOGGLE_TRANSPARENCY + 1),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
471 Hotkey<MainWindow>('3' | WKC_CTRL, "transparency_houses", GHK_TOGGLE_TRANSPARENCY + 2),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
472 Hotkey<MainWindow>('4' | WKC_CTRL, "transparency_industries", GHK_TOGGLE_TRANSPARENCY + 3),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
473 Hotkey<MainWindow>('5' | WKC_CTRL, "transparency_buildings", GHK_TOGGLE_TRANSPARENCY + 4),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
474 Hotkey<MainWindow>('6' | WKC_CTRL, "transparency_bridges", GHK_TOGGLE_TRANSPARENCY + 5),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
475 Hotkey<MainWindow>('7' | WKC_CTRL, "transparency_structures", GHK_TOGGLE_TRANSPARENCY + 6),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
476 Hotkey<MainWindow>('8' | WKC_CTRL, "transparency_catenary", GHK_TOGGLE_TRANSPARENCY + 7),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
477 Hotkey<MainWindow>('9' | WKC_CTRL, "transparency_loading", GHK_TOGGLE_TRANSPARENCY + 8),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
478 Hotkey<MainWindow>('1' | WKC_CTRL | WKC_SHIFT, "invisibility_signs", GHK_TOGGLE_INVISIBILITY),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
479 Hotkey<MainWindow>('2' | WKC_CTRL | WKC_SHIFT, "invisibility_trees", GHK_TOGGLE_INVISIBILITY + 1),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
480 Hotkey<MainWindow>('3' | WKC_CTRL | WKC_SHIFT, "invisibility_houses", GHK_TOGGLE_INVISIBILITY + 2),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
481 Hotkey<MainWindow>('4' | WKC_CTRL | WKC_SHIFT, "invisibility_industries", GHK_TOGGLE_INVISIBILITY + 3),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
482 Hotkey<MainWindow>('5' | WKC_CTRL | WKC_SHIFT, "invisibility_buildings", GHK_TOGGLE_INVISIBILITY + 4),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
483 Hotkey<MainWindow>('6' | WKC_CTRL | WKC_SHIFT, "invisibility_bridges", GHK_TOGGLE_INVISIBILITY + 5),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
484 Hotkey<MainWindow>('7' | WKC_CTRL | WKC_SHIFT, "invisibility_structures", GHK_TOGGLE_INVISIBILITY + 6),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
485 Hotkey<MainWindow>('8' | WKC_CTRL | WKC_SHIFT, "invisibility_catenary", GHK_TOGGLE_INVISIBILITY + 7),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
486 Hotkey<MainWindow>('X' | WKC_CTRL, "transparency_toolbar", GHK_TRANSPARENCY_TOOLBAR),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
487 Hotkey<MainWindow>('X', "toggle_transparency", GHK_TRANSPARANCY),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
488 #ifdef ENABLE_NETWORK
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
489 Hotkey<MainWindow>(_ghk_chat_keys, "chat", GHK_CHAT),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
490 Hotkey<MainWindow>(_ghk_chat_all_keys, "chat_all", GHK_CHAT_ALL),
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
491 Hotkey<MainWindow>(_ghk_chat_company_keys, "chat_company", GHK_CHAT_COMPANY),
16292
96db4d85ff89 (svn r21000) -Feature[tte]: chat directly to the server or a bot/admin/irc channel monitoring the server (dihedral)
rubidium <rubidium@openttd.org>
parents: 16144
diff changeset
492 Hotkey<MainWindow>(_ghk_chat_server_keys, "chat_server", GHK_CHAT_SERVER),
15416
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
493 #endif
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
494 HOTKEY_LIST_END(MainWindow)
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
495 };
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
496 Hotkey<MainWindow> *_global_hotkeys = MainWindow::global_hotkeys;
895563a537b9 (svn r20059) -Feature: customizable hotkeys for the main window (the global hotkeys)
yexo <yexo@openttd.org>
parents: 15184
diff changeset
497
15431
d730740247bc (svn r20074) -Fix (r20065): highscore window should use the same hotkey for quit as the toolbar
yexo <yexo@openttd.org>
parents: 15416
diff changeset
498 /**
d730740247bc (svn r20074) -Fix (r20065): highscore window should use the same hotkey for quit as the toolbar
yexo <yexo@openttd.org>
parents: 15416
diff changeset
499 * Does the given keycode match one of the keycodes bound to 'quit game'?
d730740247bc (svn r20074) -Fix (r20065): highscore window should use the same hotkey for quit as the toolbar
yexo <yexo@openttd.org>
parents: 15416
diff changeset
500 * @param keycode The keycode that was pressed by the user.
d730740247bc (svn r20074) -Fix (r20065): highscore window should use the same hotkey for quit as the toolbar
yexo <yexo@openttd.org>
parents: 15416
diff changeset
501 * @return True iff the keycode matches one of the hotkeys for 'quit'.
d730740247bc (svn r20074) -Fix (r20065): highscore window should use the same hotkey for quit as the toolbar
yexo <yexo@openttd.org>
parents: 15416
diff changeset
502 */
d730740247bc (svn r20074) -Fix (r20065): highscore window should use the same hotkey for quit as the toolbar
yexo <yexo@openttd.org>
parents: 15416
diff changeset
503 bool IsQuitKey(uint16 keycode)
d730740247bc (svn r20074) -Fix (r20065): highscore window should use the same hotkey for quit as the toolbar
yexo <yexo@openttd.org>
parents: 15416
diff changeset
504 {
d730740247bc (svn r20074) -Fix (r20065): highscore window should use the same hotkey for quit as the toolbar
yexo <yexo@openttd.org>
parents: 15416
diff changeset
505 int num = CheckHotkeyMatch<MainWindow>(_global_hotkeys, keycode, NULL);
d730740247bc (svn r20074) -Fix (r20065): highscore window should use the same hotkey for quit as the toolbar
yexo <yexo@openttd.org>
parents: 15416
diff changeset
506 return num == GHK_QUIT;
d730740247bc (svn r20074) -Fix (r20065): highscore window should use the same hotkey for quit as the toolbar
yexo <yexo@openttd.org>
parents: 15416
diff changeset
507 }
d730740247bc (svn r20074) -Fix (r20065): highscore window should use the same hotkey for quit as the toolbar
yexo <yexo@openttd.org>
parents: 15416
diff changeset
508
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
509
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6231
diff changeset
510 void ShowSelectGameWindow();
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6231
diff changeset
511
17634
5117fc12b816 (svn r22405) -Document: some more "random-ish" tidbits
rubidium <rubidium@openttd.org>
parents: 17598
diff changeset
512 /**
5117fc12b816 (svn r22405) -Document: some more "random-ish" tidbits
rubidium <rubidium@openttd.org>
parents: 17598
diff changeset
513 * Initialise the default colours (remaps and the likes), and load the main windows.
5117fc12b816 (svn r22405) -Document: some more "random-ish" tidbits
rubidium <rubidium@openttd.org>
parents: 17598
diff changeset
514 */
11085
8da1855e9f14 (svn r15428) -Codechange: consistently use colour instead of having both color and colour.
rubidium <rubidium@openttd.org>
parents: 10996
diff changeset
515 void SetupColoursAndInitialWindow()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
516 {
8977
9cfe40b47731 (svn r12769) -Codechange: some coding style cleanups.
rubidium <rubidium@openttd.org>
parents: 8976
diff changeset
517 for (uint i = 0; i != 16; i++) {
11085
8da1855e9f14 (svn r15428) -Codechange: consistently use colour instead of having both color and colour.
rubidium <rubidium@openttd.org>
parents: 10996
diff changeset
518 const byte *b = GetNonSprite(PALETTE_RECOLOUR_START + i, ST_RECOLOUR);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
519
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
520 assert(b);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
521 memcpy(_colour_gradient[i], b + 0xC6, sizeof(_colour_gradient[i]));
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
522 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
523
12581
374037971842 (svn r17021) -Codechange: Use nested widgets for the main window.
alberth <alberth@openttd.org>
parents: 12391
diff changeset
524 new MainWindow;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
525
6201
3b141366478a (svn r8987) -Cleanup: doxygen changes. Again. Mostly (still) @files missing tags and (more than just) a few comments style.
belugas <belugas@openttd.org>
parents: 5894
diff changeset
526 /* XXX: these are not done */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
527 switch (_game_mode) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
528 default: NOT_REACHED();
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
529 case GM_MENU:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
530 ShowSelectGameWindow();
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
531 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
532
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
533 case GM_NORMAL:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
534 case GM_EDITOR:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
535 ShowVitalWindows();
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
536 break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
537 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
538 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
539
17634
5117fc12b816 (svn r22405) -Document: some more "random-ish" tidbits
rubidium <rubidium@openttd.org>
parents: 17598
diff changeset
540 /**
5117fc12b816 (svn r22405) -Document: some more "random-ish" tidbits
rubidium <rubidium@openttd.org>
parents: 17598
diff changeset
541 * Show the vital in-game windows.
5117fc12b816 (svn r22405) -Document: some more "random-ish" tidbits
rubidium <rubidium@openttd.org>
parents: 17598
diff changeset
542 */
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6231
diff changeset
543 void ShowVitalWindows()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
544 {
9240
5cedbfe95435 (svn r13106) -Codechange: rework the toolbar code a little so functions do not have to return the Window they just created.
rubidium <rubidium@openttd.org>
parents: 9205
diff changeset
545 AllocateToolbar();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
546
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
547 /* Status bad only for normal games */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
548 if (_game_mode == GM_EDITOR) return;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
549
8976
cbf8b2b89c08 (svn r12768) -Codechange: move the statusbar GUI to it's own file.
rubidium <rubidium@openttd.org>
parents: 8975
diff changeset
550 ShowStatusBar();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
551 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
552
8857
a75a0c683fea (svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium <rubidium@openttd.org>
parents: 8806
diff changeset
553 /**
a75a0c683fea (svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium <rubidium@openttd.org>
parents: 8806
diff changeset
554 * Size of the application screen changed.
a75a0c683fea (svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium <rubidium@openttd.org>
parents: 8806
diff changeset
555 * Adapt the game screen-size, re-allocate the open windows, and repaint everything
a75a0c683fea (svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium <rubidium@openttd.org>
parents: 8806
diff changeset
556 */
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6231
diff changeset
557 void GameSizeChanged()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
558 {
9533
176a9fe1018f (svn r13537) -Fix [FS#2090](r13523): QSortT won't work this way, use Dimension instead of uint16[2] for resolutions
smatz <smatz@openttd.org>
parents: 9481
diff changeset
559 _cur_resolution.width = _screen.width;
176a9fe1018f (svn r13537) -Fix [FS#2090](r13523): QSortT won't work this way, use Dimension instead of uint16[2] for resolutions
smatz <smatz@openttd.org>
parents: 9481
diff changeset
560 _cur_resolution.height = _screen.height;
8985
480d464f5e24 (svn r12779) -Codechange: remove a few constants from openttd.h.
rubidium <rubidium@openttd.org>
parents: 8979
diff changeset
561 ScreenSizeChanged();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
562 RelocateAllWindows(_screen.width, _screen.height);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
563 MarkWholeScreenDirty();
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
564 }