612 Commits

Author SHA1 Message Date
Bastien Bouclet
9cc2fee887 SDL: Enable joystick input by default
Game controller input is now enabled whenever a compatible device is
connected. The keymapper's keymaps are refreshed when a joystick is added
or removed.

Fixes #10366.
2020-03-16 18:41:27 +01:00
Cameron Cawley
f2db412ba5 GUI: Store the shader name in the config file instead of the ID 2020-03-09 18:01:14 -05:00
Cameron Cawley
7488e17c0a GUI: Allow shaders to be selected for individual targets 2020-03-09 18:01:14 -05:00
Thanasis Antoniou
34f9015e66 GUI: OPTIONS: Use translated string for None entry in Accessibility tab 2020-02-09 22:23:03 +02:00
Thanasis Antoniou
f971e1e4a8 GUI: OPTIONS: Cloud storage list populated with translated string on addCloudControls()
Resolves a bug with displaying the wrong (previous) translation when switch theme language

Previously, a translated string was stored in cloudmanager _storages config items, which would become stale if the theme language was changed.
2020-02-09 22:06:19 +02:00
Bastien Bouclet
519b4a57e2 KEYMAPPER: Allow engines to return multiple keymaps
The idea is that keymaps may be situational. A keymap may be always
enabled, while another one may be enabled only during combat..
2020-01-29 08:51:29 +01:00
Bastien Bouclet
7617723ab5 KEYMAPPER: Allow backends to register multiple keymaps 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
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
Filippos Karapetis
daed2a3a40 GUI: Fix build when dynamic plugins are enabled 2020-01-22 09:19:38 +02:00
Cameron Cawley
8c1d277a77 GUI: Use a ScrollContainer for the Misc tab
Fixes Trac #10961
2020-01-22 07:55:42 +02:00
Cameron Cawley
c0aa5b9332 GUI: Split GlobalOptionsDialog::build() into multiple functions 2020-01-22 07:55:42 +02:00
Bastien Bouclet
6e1abf064a GUI: Use nullptr instead of 0 or NULL where appropriate 2020-01-19 15:08:37 +01:00
Bastien Bouclet
cb2bb8fac7 GUI: Add clear button for the plugins path
The other paths have one.
2020-01-04 17:48:13 +01:00
Bastien Bouclet
eb28c5a092 GUI: Use a dialog theme layout for the unknown game dialog 2020-01-04 10:56:25 +01: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
feaf9dc365 ALL: Sync with ScummVM rev. 55dba55056b842e02475d8c95fa621f431b5e3be 2019-12-08 17:06:42 +01:00
Bastien Bouclet
2c812a6b7a GUI: Add DropdownButtonWidget and use it in the launcher for mass add
DropdownButtonWidget is a button split in two parts vertically. Clicking
the left part triggers a default action. Clicking the right part shows a
list of other actions the user can choose from.

Using this widget on the launcher lets 'Mass add' be a secondary action
of the 'Add' button, removing the necessity of pressing the shift key to
access the feature.
2019-11-24 14:06:25 +01:00
Bastien Bouclet
358d95e909 GUI: Fix pressing escape erroneously saving the changes in the options dialog
Pressing escape sets the dialog result to -1.
2019-10-23 20:57:47 +02:00
Jaromir Wysoglad
b9d3c84db4 TTS: Fix language setting. 2019-10-16 19:30:56 +02:00
Eugene Sandulenko
e5caf79c6a GUI: Fix crash with attempt to switch to Greek or Hebrew
These languages have 2 charater codes, and setting third character
in the Common::String led to assert. The proper consturctor is used
instead now.
2019-10-14 21:11:52 +02:00
Eugene Sandulenko
be95a7a2dd JANITORIAL: Whitespace fixes 2019-10-14 21:11:40 +02:00
D G Turner
30c366ee5d GUI: Add Missing Switch Default Cases
These are flagged by GCC if -Wswitch-default is enabled.
2019-10-03 06:03:46 +01:00
Ben Castricum
eee786d71f GUI: Change "saves" to "saved games" in labels 2019-09-14 01:36:37 +01:00
Jaromir Wysoglad
c402666635 TTS: Refactoring
Refactoring as suggested by bluegr on github.
2019-09-01 22:47:55 +03:00
Jaromir Wysoglad
58065ceacd TTS: Refactoring
* Delete multiple empty rows
 * Make getVolume non-virtual and leave just the implementation
    in base class
 * Resolve warning about signed / unsigned comparison in
    gui-manager
 * Clear availableVoices when updating voices on linux
 * By default set language to transMan language on windows
    (if the transMan is available)
 * Remove freeVoices method from Windows ttsMan, it isn't needed
    anymore
2019-09-01 22:47:55 +03:00
Jaromir Wysoglad
33f8aadfeb TTS: Add age to TTSVoice 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad
318c6d7ec6 TTS: Finish implementing the Windows TTS manager 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad
8357e8e6bf TTS: Prepare for windows TTS
Add windows configuration in configure
Add basic skeleton to backends
Check if ttsMan is initialized in GUI
2019-09-01 22:47:55 +03:00
Jaromir Wysoglad
53e0f21adc TTS: Reformat tts volume setting for GUI 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad
5e44796d6b TTS: Add correct language switching 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad
7d72fc0d60 TTS: Restrict TTS on linux to only english
Unfortunatedly the encoding used by ScummVM breaks the
speech-dispatcher, so after trying to say non-ascii character
the connection has to be restarted. So for now I am restricting
the GUI TTS to english only.
2019-09-01 22:47:55 +03:00
Jaromir Wysoglad
8bd7e39265 TTS: Add voice selection to options 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad
b5cebcbeae TTS: Add text to speech to the GUI. 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad
fa6faca76a TTS: Add TTS checkbox to Options
Probably works only in the builtin theme right now.
2019-09-01 22:47:55 +03:00
Cameron Cawley
ea9e33bd10 GUI: Check if fullscreen is available at runtime 2019-08-18 06:21:28 +03:00
Lothar Serra Mari
87d29e034f GUI: Enable missing translation in Cloud options dialog 2019-08-09 23:18:39 +02:00
Alexander Tkachev
2c31e6cbe5 GUI: Fix Options' Cloud tab scrollbar issue
Calling reflowLayout() not only updates the layout (as setupCloudTab()
was already doing), but also recalculates scrollbar. The issue was that
old layout didn't need a scrollbar, but updated layout did. But,
ScrollContainer was not notified, and thus scrollbar didn't appear
(until user tried to reselect the Storage via popup).
2019-08-04 04:43:53 +07:00
D G Turner
d638c1d384 GUI: Fix GCC Compiler Warning in Cloud Tab
This comment for fall through to prevent the compiler warning about
this has to be at the point of fallthrough i.e. outside the grouping
brackets to be effective.
2019-08-03 14:27:57 +01:00
Thierry Crozat
3e13bba28f GUI: Fix translation context for Cloud and LAN tabs 2019-07-30 21:43:08 +01:00
Alexander Tkachev
cffd6d79ab GUI: Fix a label in Cloud tab 2019-07-30 14:51:41 -04:00
Alexander Tkachev
f6a17e679f CLOUD: Ask user to manually enable Storage
For more security, newly connected Storage only gets username/used space
information and is disabled until user manually presses the button.
2019-07-30 14:51:41 -04:00
Alexander Tkachev
16d97b6948 CLOUD: Minor fixes for the PR#1754
- added missing 'd' in "%d" in SavesSyncRequest;
- removed trailing ',' in enum in gui/options.h;
- fixed #endif to have // before USE_LIBCURL in gui/options.h.
2019-07-30 14:51:41 -04:00
Alexander Tkachev
f7902583bc GUI: Change 'Wi-Fi Sharing' tab name to 'LAN' 2019-07-30 14:51:41 -04:00
Alexander Tkachev
e4da63823a GUI: Add feature description into Wi-Fi Sharing tab 2019-07-30 14:51:41 -04:00
Alexander Tkachev
a9d47a163e GUI: Fix Cloud tab scrolling problem
GlobalOptionsDialog is now also a CommandSender, so it could send
command "scroll to the top" when storage is disconnected in Cloud tab
(layout updates, that's why scrolling is needed).
2019-07-30 14:51:41 -04:00
Alexander Tkachev
a1b847a1ef GUI: Make Cloud tab wizard input box cleanup value
Now input box does not remember old code you've put in it if you changed
selected storage or disconnected one.
2019-07-30 14:51:41 -04:00
Alexander Tkachev
28c93ed027 GUI: Fix Cloud tab wizard elements displaying after connecting storage
Elements were displayed until scrollbar was used, now they are hidden
right after storage is connected.
2019-07-30 14:51:41 -04:00
Alexander Tkachev
3df126853a GUI: Separate Cloud tab in two
All local webserver-related settings are now shown in a separate, "Wi-Fi
Sharing" tab (shown if built with USE_SDL_NET). Cloud tab is only shown
if actual cloud storages are built (USE_LIBCURL).
2019-07-30 14:51:41 -04:00
Alexander Tkachev
99c2418d1a GUI: Rewrite Cloud tab
- StorageWizardDialog is removed, along with bmps it was using;
- EditTextWidget now accepts custom font in constructor;
- ScrollContainer scrollbar now jumps to top when content height changes
so it's "overscrolled";
- IndexPageHandler now does not awaits for `code` GET-parameter, as
local webserver is no longer used to connect Storages;
- CloudManager and all corresponding Storages are updated to support
disconnecting and to notify about successful connection.
2019-07-30 14:51:41 -04:00