Commit Graph

80 Commits

Author SHA1 Message Date
Bastien Bouclet
0f1e1894c1 GUI: Add the arrow keys to the GUI keymap 2020-02-09 07:29:43 +01:00
Bastien Bouclet
426867f4bc KEYMAPPER: Give human readable descriptions to the keymaps 2020-01-29 08:51:29 +01:00
Bastien Bouclet
32174c9067 KEYMAPPER: Actions can now be bound to joystick buttons 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
54f57568bc GUI: Expose the keymap builder function 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
17791e2f7d KEYMAPPER: Actions can now have default mappings 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
e197a75829 KEYMAPPER: Action can generate only a single event 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
Bastien Bouclet
6e1abf064a GUI: Use nullptr instead of 0 or NULL where appropriate 2020-01-19 15:08:37 +01:00
Jaromir Wysoglad
b9d3c84db4 TTS: Fix language setting. 2019-10-16 19:30:56 +02:00
Eugene Sandulenko
aad6c6346b GUI: Added easter egg 2019-10-14 00:14:38 +02: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
3027acc12e TTS: Minor refactorisations
- Add comment to tts initialization on Windows
 - Correctly free the voicesInfo in linux ttsMan
 - Remove popState method from linux-text-to-speech.h and
	windows-text-to-speech.h
 - Add tts to help in configure
 - Refactor language setting in gui-manager.cpp
	It counted with english being the default language in
	ttsMan constructors, which isn't true anymore.
2019-09-01 22:47:55 +03:00
Jaromir Wysoglad
4d95720731 TTS: Fix voice setting on startup
The ScummVM was crashing because of an assert, when there was less
voices availaible, than what was set in the ConfMan.

Now the voice just falls back to 0th voice, if there are not
enough voices.
2019-09-01 22:47:55 +03:00
Jaromir Wysoglad
ce64528129 TTS: Make sure that TTS lang matches transMan lang 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
Cameron Cawley
d7b2b1b8f9 GUI: Support adding games via Drag and Drop 2019-04-30 22:17:04 +01:00
Matan Bareket
69cecebdbc BUILD: Update default theme to use remastered 2019-04-02 10:55:57 -04:00
Bastien Bouclet
4d0bb753e4 GUI: Remove the ThemeItem draw queues
Drawing nows happens directly when the Dialog or Widget draw methods are
called. This makes it easy to debug why a particular low level draw
method was called, by inspecting the call stack.

This replaces the notion of "buffering" by two independant ways to
control what is drawn and where:
- The active layer is used to select whether the foreground or
  background part of the dialogs are rendered by the draw calls.
- The active surface is used to select if the draw calls affect the back
  buffer or the screen.

The foreground layer of the active dialog is drawn directly to the
screen. Its background layer is drawn to the back buffer. This way
widgets can restore the back buffer in order to update without having to
redraw the dialog's background.

Dialogs lower in the dialog stack are drawn entirely to the back buffer.
2018-03-12 11:46:04 +01:00
Bastien Bouclet
5878c618c9 GUI: Remove Dialog::markAsDirty to expose full GUI redraws 2018-01-27 18:12:34 +01:00
Bastien Bouclet
fc37918130 GUI: Remove explicit redraw when scrolling the ScrollContainer
The redraw is already handled by the GUI main loop
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
Bastien Bouclet
3b50b57f54 GUI: Rework the frame limiter to actually reach the target framerate
The previous combination of a fixed 10 milliseconds delay and time since
last update checks meant that in most cases 20 milliseconds elapsed
between two calls to updateScreen resulting in a 50 fps framerate. On
systems with wait for vsync enabled that meant that some frames were
missed.

The new frame limiter waits for a variable delay equal to the non
consumed time in the slot allocated to the frame.
2018-01-27 18:12:34 +01:00
Eugene Sandulenko
940b2a20f1 Revert "COMMON: Change way the Singleton instances are instantiated"
This reverts commit eefa72afa1.

With this patch ConfigManager is broken.
2017-07-10 21:17:41 +02:00
Thierry Crozat
eefa72afa1 COMMON: Change way the Singleton instances are instantiated
This fixes tons of warnings with clang from a recent xcode version on
macOS (and possibly other systems) complaining that an instantiation
of _singleton is required but no definition is available.
2017-07-10 21:11:20 +02:00
Bastien Bouclet
4ca6f58264 GUI: Fix a signed vs unsigned comparison warning 2017-03-18 16:17:10 +01:00
Eugene Sandulenko
121cb80696 JANITORIAL: Remove trailing spaces 2017-03-13 08:59:22 +01:00
Eugene Sandulenko
1ffb661853 GUI: Fix warnings 2017-03-13 08:59:10 +01:00
Thierry Crozat
cc75d17e9c GUI: Allow delayed deletion of GuiObject
This is achieved by adding a list of GuiObject to delete to GuiManager
and doing the deletion in GuiManager::runLoop.

The main purpose of this is to avoid the deletion of ButtonWidget object
while their ButtonWidget::sendCommand function is being called. For
example the sendCommand of the Apply button of the OptionsDialog
may cause a rebuild (if the GUI language was changed) which tries to
delete the widgets inside the OptionsDialog, including the Apply button.
2017-03-10 02:02:58 +00:00
Eugene Sandulenko
cd7bddf644 Merge pull request #720 from ottogin/gui-events-fix
GUI: Fix "eaten" event by dialog which was closed
2016-11-12 12:09:14 +01:00
Alexander Tkachev
f5cb5be393 GUI: Add SaveLoadCloudSyncProgress in ScummModern theme
ScummVM would probably crash when using a theme without
SaveLoadCloudSyncProgress dialog described.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
31e528c070 GUI: Make ScrollContainerWidget do full redraw 2016-07-03 12:17:43 +02:00
Ori Avtalion
be1fdf59bb GUI: When dialogs gain focus, inform them of the current mouse position
Previously, they only reacted to the mouse position once it was moved.
This meant that if the cursor was on a button that just gained focus,
it did not highlight.

Fixes #7101.
2016-04-06 17:51:30 +03:00
Lothar Serra Mari
8fa543f58f GUI: Increase update screen rate to 60Hz 2016-04-05 20:31:24 +01:00
Lothar Serra Mari
841f87bf47 GUI: Update _lastRedraw before calling updateScreen
This reduces the cursor lags on some systems.
2016-04-05 20:31:15 +01:00
ottogin
b1c678f509 GUI: Fix "eaten" event by dialog which was closed
This patch fix bug #6841
If this runloop catches both the repeated key down event and the key up event.
In this case they key down will close the tooltip, because it got closed the key up event will be ignored.
As a result the LauncherDialog will never get notified the SHIFT state might have changed and not adapt the button description.
In this patch we just pass event to topDialog, if activeDialog was closed.
Also we must check, If topDialog doesn't exist.
2016-03-24 21:31:53 +03:00
Eugene Sandulenko
8360d3cd6f GUI: Do not show splash when ran from launcher 2015-11-11 21:36:27 +01:00
Ben Castricum
0d215badf7 GUI: change FullScreen into fullscreen
This makes it consistant with other references to fullscreen.
2014-08-28 20:46:30 +02:00
Johannes Schickel
f5dfe6725a GUI: Make GPL headers consistent in themselves. 2014-02-18 02:39:35 +01:00
Johannes Schickel
fa90f9797c GUI: Check for screen change whenever an event is polled.
This should *hopefully* really fix all GUI crashes when resizing with OpenGL.
2013-10-19 22:18:22 +02:00
Matthew Hoops
4a7e4e5b22 ALL: Don't use EventRecorder at all when not compiled in 2013-07-06 23:54:45 -04:00
Eugene Sandulenko
f59512c47e RECORDER: Implement Events Recorder 2013-05-17 00:18:09 +03:00
Johannes Schickel
80ae9d7d34 GUI: Allow tooltips to be changed after widget creation. 2012-06-20 03:31:50 +02:00