Bastien Bouclet
0995f40677
MOHAWK: RIVEN: Use custom engine actions for event handing
2020-01-29 08:51:29 +01:00
Bastien Bouclet
df4bf6556c
KEYMAPPER: Introduce custom engine actions
...
Custom engine actions are a new type of event the Keymapper can produce.
When an engine declares its keymap, it can declare it wants to receive
custom action events when the corresponding key is pressed, instead of
the originating hardware input events.
This system allows:
* Key bindings to be specified only once when declaring the keymap,
instead of twice (when handling the events).
* To truly rebind keys in the keymaps dialog. When using traditional
event mapping, the keymapper remaps the user keypress to the keypress
expected by the game engine to perform the action. However, the engine
still accepts the original keys.
The new concept of 'standard actions' defines a set of engine actions
that are commonly available in the games supported by ScummVM. Backends
can define default bindings for the standard actions to hardware
specific input devices.
2020-01-29 08:51:29 +01:00
Bastien Bouclet
13fbdb935a
KEYMAPPER: Use custom backend actions for the SDL graphics keymap
2020-01-29 08:51:29 +01:00
Bastien Bouclet
be49fc4b9a
SDL: Add a keymap for the graphics manager
2020-01-29 08:51:29 +01:00
Bastien Bouclet
ec9c394787
KEYMAPPER: Remove DefaultEventMapper
...
Now the keymapper is enabled by default, it does not make sense to have
a separate class anymore.
2020-01-29 08:51:29 +01:00
Bastien Bouclet
14663c4790
KEYMAPPER: Make the keymapper mandatory
2020-01-29 08:51:29 +01:00
Bastien Bouclet
cc336635a1
KEYMAPPER: Change custom backend action events not to be instant
...
Allows action consumers to choose if they want to react on the start or
on the end of an user interaction.
2020-01-29 08:51:29 +01:00
Bastien Bouclet
2d7588d9c3
EVENTS: Remove the dependency to EventSource from EventMapper
2020-01-29 08:51:29 +01:00
Filippos Karapetis
1b116170fa
KEYMAPPER: Fix forward declarations of HardwareInput
2020-01-27 02:33:39 +02:00
Bastien Bouclet
511d138bbc
KEYMAPPER: Move the remap dialog to an option dialog tab
...
The aim is to make it easy to discover, and possible to use without a
keyboard.
2020-01-26 23:09:08 +02:00
Bastien Bouclet
19de568e24
KEYMAPPER: Untangle the dependencies between Action and Keymap
2020-01-26 23:09:08 +02:00
Bastien Bouclet
285b10beef
KEYMAPPER: Store hardware inputs into maps
2020-01-26 19:07:53 +01:00
Bastien Bouclet
3d48b54288
KEYMAPPER: Remove the ascii value from the hardware keys
...
The ascii value is for text input, which is not related to hotkeys.
2020-01-26 19:07:53 +01:00
Bastien Bouclet
d60190b12e
ENGINES: Define default bindings for the existing engine keymaps
2020-01-26 19:07:53 +01:00
Bastien Bouclet
576982bc33
KEYMAPPER: Use the default action bindings defined by the backends
2020-01-26 19:07:53 +01:00
Bastien Bouclet
17791e2f7d
KEYMAPPER: Actions can now have default mappings
2020-01-26 19:07:53 +01:00
Bastien Bouclet
ade0efa762
KEYMAPPER: Multiple inputs can map to the same action
2020-01-26 19:07:53 +01:00
Bastien Bouclet
d5e2b5d8f2
KEYMAPPER: Make it clear the keymaps are owned by the keymapper
...
Also free all the remaining keymaps when freeing the keymapper.
2020-01-26 19:07:53 +01:00
Bastien Bouclet
729cd24c0b
KEYMAPPER: Change the keymap action list to be an Array
2020-01-26 19:07:53 +01:00
Bastien Bouclet
3b5016a62d
KEYMAPPER: Change the remap dialog to use a scrollable container
2020-01-26 19:07:53 +01:00
Bastien Bouclet
9c0bc2b633
KEYMAPPER: Simplify the way keymaps are enabled and disabled
2020-01-26 19:07:53 +01:00
Bastien Bouclet
ac44469558
KEYMAPPER: Remove the domain class
2020-01-26 19:07:53 +01:00
Bastien Bouclet
930ff55421
KEYMAPPER: Simplify the event mapping logic
2020-01-26 19:07:53 +01:00
Bastien Bouclet
7edff01e69
KEYMAPPER: Move the remap event capture logic out of the keymapper
2020-01-26 19:07:53 +01:00
Bastien Bouclet
28e3f2aed7
KEYMAPPER: Remove dead code
2020-01-26 19:07:53 +01:00
Bastien Bouclet
e197a75829
KEYMAPPER: Action can generate only a single event
2020-01-26 19:07:53 +01:00
Bastien Bouclet
a449b87c5d
KEYMAPPER: Remove action id length restriction
2020-01-26 19:07:53 +01:00
Bastien Bouclet
b7a816f1eb
KEYMAPPER: Clean up the classes dependencies
2020-01-26 19:07:53 +01:00
Cameron Cawley
9fc24522d7
BACKENDS: Add more keycodes
2020-01-21 03:28:22 +02:00
Bastien Bouclet
c0d8b6d9fc
GUI: Introduce dynamic layouts
...
Prior to this change, a GUI layout was only affected by the screen size.
Now, a layout can additionally be influenced by the GUI dialog and widgets
that uses it. This capability is leveraged to implement the following
features:
* Layout elements that are not bound to a GUI widget do not take space.
This means that dialogs where the widgets shown depend on for example
a feature being enabled at configure time no longer have blank spaces.
* Widgets can define a minimal required size for their contents not to be
cut. For now this is only used for buttons so their width is always
sufficient for their caption not to be cut. This mechanism could be
applied to other widget types in the future.
2020-01-04 10:56:25 +01:00
Bastien Bouclet
455a409cab
ALL: Sync with ScummVM - rev. b272701834
2018-03-17 16:25:28 +01:00
Bastien Bouclet
5878c618c9
GUI: Remove Dialog::markAsDirty to expose full GUI redraws
2018-01-27 18:12:34 +01:00
Bastien Bouclet
0496ede62f
GUI: Implement dirty-checking for widget redraws
2018-01-27 18:12:34 +01:00
Pawel Kolodziejski
8b8783134f
ALL: synced with ScummVM
2014-12-04 20:46:56 +01:00
Eugene Sandulenko
9b8b737fad
KEYMAPPER: Fix off-by-one error with keymapper action names
2014-10-26 22:20:57 +01:00
Pawel Kolodziejski
8759900b6a
ALL: synced with ScummVM
2014-04-05 18:18:42 +02:00
Matthew Hoops
5159996cec
KEYMAPPER: Have clicking on another remap button disable remapping
...
Prevents the remapping code from being activated twice (throwing an assertion)
2014-02-20 01:06:50 -05:00
Johannes Schickel
594aaad38f
KEYMAPPER: Make GPL headers consistent in themselves.
2014-02-18 02:39:35 +01:00
Pawel Kolodziejski
068ff94d20
ALL: synced with ScummVM
2013-07-07 15:29:33 +02:00
Willem Jan Palenstijn
c9f0e8149d
ALL: Fix typo (succesful -> successful)
...
Thanks to 'onlyjob' on pull request #337 for pointing out an instance of this.
2013-06-06 16:45:59 +02:00
Pawel Kolodziejski
8e2ab87455
ALL: synced with scummvm
2012-03-25 11:41:48 +02:00
Tarek Soliman
c0a215282d
KEYMAPPER: Add delays for *UP events coming from non-keys
...
Delayed entries are in a queue where each entry stores how
many milliseconds should pass based on the last entry.
2012-03-02 20:48:50 -06:00
Tarek Soliman
d12f21b31d
KEYMAPPER: Map non-key custom input events
...
This also makes the keymapper be in charge of keymapping logic
2012-03-02 20:48:50 -06:00
Tarek Soliman
4ee1a3acea
KEYMAPPER: Add non-key inputs to HardwareInput
2012-03-02 20:48:50 -06:00
Tarek Soliman
477c1b9a87
KEYMAPPER: HardwareInputSet now has defaults
...
Ports can add additional special keys.
SDL no longer carries the static tables.
Default behavior unchanged: HardwareInputSet() still gives an empty one.
2012-02-28 06:45:35 -06:00
Tarek Soliman
4d1e6c3d54
KEYMAPPER: Move HardwareInputSet implementation out of header file
2012-02-28 06:34:19 -06:00
Tarek Soliman
6afac4e01e
KEYMAPPER: Rename HardwareKey to HardwareInput
2012-02-27 13:00:56 -06:00
Pawel Kolodziejski
fae032743d
ALL: synced with scummvm
2012-02-24 12:15:44 +01:00
Tarek Soliman
dbdfc13819
KEYMAPPER: Fix a signed/unsigned comparison warning
2012-02-22 15:16:52 -06:00
Pawel Kolodziejski
bc71f3f583
synced with scummvm
2012-02-22 17:21:09 +01:00