Commit Graph

110 Commits

Author SHA1 Message Date
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
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
Eugene Sandulenko
9b8b737fad KEYMAPPER: Fix off-by-one error with keymapper action names 2014-10-26 22:20:57 +01: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
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
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
Tarek Soliman
dbdfc13819 KEYMAPPER: Fix a signed/unsigned comparison warning 2012-02-22 15:16:52 -06:00
Tarek Soliman
92aabb6868 KEYMAPPER: Change HardwareKey id to Common::String 2012-02-22 07:44:59 -06:00
Tarek Soliman
e1e9bd5c0e KEYMAPPER: Clean up more dead code
More automapper related dead code
2012-02-21 13:39:05 -06:00
Tarek Soliman
aa42d78658 KEYMAPPER: Remove automapping dead code 2012-02-21 08:20:40 -06:00
Tarek Soliman
56e517fdad KEYMAPPER: Add some comments 2012-02-20 12:26:25 -06:00
Tarek Soliman
6c4d65e53f KEYMAPPER: Change how keymaps are displayed in the remap dialog
This makes it so that there's 2 groups:
1 - The keymap stack
2 - The loaded keymaps

The first group displays which keymaps are active and which keymaps
are completely blocked due to an opaque keymap on top.

The second group displays which loaded keymaps store their mappings
globally and which ones store their mappings per-target.
2012-02-20 10:52:50 -06:00
Tarek Soliman
a0ba4eb569 KEYMAPPER: Rewrite the EventMapper API 2012-02-20 06:49:22 -06:00
Tarek Soliman
e7ade8ae05 KEYMAPPER: EventMapper must now eat all events 2012-02-20 06:49:21 -06:00
Tarek Soliman
cce5be67dc KEYMAPPER: Allow ports to define default Keymap Action bindings 2012-02-15 17:07:52 -06:00
Tarek Soliman
a4798602d7 JANITORIAL: Fix missing whitespace in pointer cast
find -name '*.h' -or -name '*.cpp' | xargs sed -r -i 's@\(([A-Za-z0-9]+)\*\)@(\1 *)@g'

This seems to have caught some params as well which is not undesirable IMO.
It also caught some strings containing this which is undesirable so I
excluded them manually. (engines/sci/engine/kernel_tables.h)
2012-02-15 10:07:10 -06:00
Tarek Soliman
921f602ab8 JANITORIAL: Fix whitespace in pointer template arg 2012-02-15 10:07:08 -06:00
Tarek Soliman
dbcd177606 KEYMAPPER: Make some parameters const 2012-02-15 10:07:08 -06:00
Tarek Soliman
705761011d KEYMAPPER: Allow ports to define their own global keymap 2012-02-12 13:28:13 -06:00
Tarek Soliman
52da780fbc KEYMAPPER: Refactor HardwareKeySet generation 2012-02-12 13:28:13 -06:00
Tarek Soliman
06b5299461 KEYMAPPER: Fix re-selecting the top keymap
Re-selecting the top entry would always populate the actions
from the GUI keymap since it is the active keymap (the remap
dialog itself is GUI)

The top keymap was correct during RemapDialog::open() because
the gui keymap had not been pushed to the stack yet.
2012-02-09 02:49:21 -06:00
Tarek Soliman
38dea529e8 KEYMAPPER: Display active keymap stack in remap dialog popup list
This should make it clear what keymaps are on the stack and in
what order.

Also renamed the label of the top "special" entry in the list to
"(Effective)" since it displays the top keymap's action and also
displays reachable mapped actions from other active keymaps.
2012-02-09 02:15:35 -06:00
Tarek Soliman
9de279b2ab KEYMAPPER: Fix active keymap name displayed in remap dialog
This workaround no longer applies and is in fact causing a bug
in the name of active keymap
2012-02-05 19:01:51 -06:00
Tarek Soliman
07f1d33ef7 KEYMAPPER: Fix annoying debug message 2012-02-04 20:47:12 -06:00
Tarek Soliman
a488556dcd KEYMAPPER: Handle EVENT_MAINMENU directly 2012-02-02 19:10:01 -06:00
Tarek Soliman
70d94bdd2c KEYMAPPER: Allow simple events to be added to an Action
This also simplifies the Action code a little bit
2012-02-02 19:05:05 -06:00
Tarek Soliman
37d77253cf KEYMAPPER: Add failsafe code for popping into Keymapper itself
Thanks LordHoto
2012-01-07 22:08:57 -06:00
Tarek Soliman
d143872be6 KEYMAPPER: Constantify global keymap name 2012-01-07 21:20:29 -06:00
Tarek Soliman
82e0900678 KEYMAPPER: Rename inherit flag to transparent
Less confusing
2012-01-07 21:10:05 -06:00
Tarek Soliman
b89bc000d9 KEYMAPPER: Remap dialog shows buttons before labels 2011-12-30 15:52:40 -06:00
Tarek Soliman
16d529cdc3 KEYMAPPER: Use single column in remap dialog
This is to allow for long labels like in the eob keymap
2011-12-30 15:52:40 -06:00
Tarek Soliman
0e0eddbab3 KEYMAPPER: Fix clear button behavior in remap dialog
This is a regression from 1b11139dc5
2011-12-30 13:13:41 -06:00
Tarek Soliman
366a942a3a KEYMAPPER: Simplify calling getKeymap 2011-12-30 13:03:39 -06:00
Filippos Karapetis
a473934abd COMMON: Perform some keymapper-related changes to the KeyState struct
The == operator in KeyState should not be checking for sticky modifier
keys. This allows the keymapper's defined actions to function correctly
in desktop platforms, when sticky modifier keys such as caps lock and
num lock are turned on. Also, added some sanity checks to hasFlags()
and enums for sticky and non-sticky keys
2011-12-30 13:59:55 +02:00
Filippos Karapetis
d55ce36268 KEYMAPPER: Use hasFlags() in findHardwareKey() 2011-12-30 01:15:06 +02:00
Filippos Karapetis
1d3ff35373 KEYMAPPER: Disable the (accidentally reenabled automatic mapper again 2011-12-30 00:12:45 +02:00
Filippos Karapetis
410c9e0b30 KEYMAPPER: Fix broken implementation of findHardwareKey()
This fixes the keymapper dialog (at least on desktop platforms), but the
keymapper itself is still not working (tested with LoL)
2011-12-30 00:09:10 +02:00
Tarek Soliman
1b11139dc5 KEYMAPPER: Switch to using addClearButton() 2011-12-13 08:37:19 -06:00
Tarek Soliman
feb04d2164 KEYMAPPER: Add Common::KeyActionEntry for making simple keymap tables 2011-12-12 20:18:40 -06:00
Tarek Soliman
b708d6de79 Revert "KEYMAPPER: Make global keymap that is always active"
This reverts commit ac85d134b3.
2011-11-02 10:16:16 -05:00
Tarek Soliman
57bc9a21cc KEYMAPPER: Improved clear button
It uses the fancy new kImageEraser now
2011-10-28 22:53:30 -05:00
Tarek Soliman
07f1c2032a KEYMAPPER: Add tooltip text for clear buttons 2011-10-28 22:51:53 -05:00