Mercurial > hg > openttd
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 |
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 } |