Commit Graph
66 Commits
Author SHA1 Message Date
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
Oleksiy Kurochko e6c317a922 GUI: Implemented pressed state for buttons 2012-05-03 19:32:08 +03: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
Johannes Schickel 442bcb7d3e ALL: Fix some signed/unsigned comparison warnings. 2012-02-22 20:20:55 +01:00
Tarek Soliman aa42d78658 KEYMAPPER: Remove automapping dead code 2012-02-21 08:20:40 -06:00
Tarek Soliman 3f6d549b0e KEYMAPPER: Move F7 and F8 handling to DefaultEventMapper 2012-02-20 06:49:22 -06:00
Tarek Soliman 5cf932198e KEYMAPPER: Fix Action ctor args in most keymaps 2012-02-13 23:24:59 -06:00
Tarek Soliman da4b03139d KEYMAPPER: Added Toggle FullScreen action 2012-02-04 19:53:57 -06:00
Johannes Schickel 453eeb496c GUI: Work around bug #3481395.
The bug in question is: "LAUNCHER: Can't quit from unsupported game dialog".
2012-01-30 23:00:16 +01: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 73160e54b4 KEYMAPPER: Only push/pop the gui keymap once per gui session
The removes a bit of waste when gui dialogs are opened.
Multiple gui keymaps were being pushed.
2012-01-07 20:48:49 -06:00
Tarek Soliman 366a942a3a KEYMAPPER: Simplify calling getKeymap 2011-12-30 13:03:39 -06:00
Tarek Soliman 6523454db5 KEYMAPPER: Put the gui keymap pushing/popping back in GuiManager::runLoop
This because theoretically the GUI could be run without a dialog.
This also fixes the situations where the GUI keymap gets popped more times than pushed.

Thanks sev
2011-10-31 22:59:55 -05:00
Tarek Soliman 56b5c0ea9f KEYMAPPER: Make sure GuiManager only pops gui keymaps 2011-10-27 10:46:23 -05:00
Tarek Soliman a5082ffa5d KEYMAPPER: Skip GUI keymap when displaying active keymap in keymapper dialog
This fixes a problem where opening the keymapper dialog would cause the current game
keymap to be displayed as the active keymap but then changing the keymap selection
back to it would cause the GUI keymap to be displayed as the active one. The GUI keymap
was indeed at the top of the stack but that's not the desired effect.

Also move the pushing and popping of the keymap to Dialog::Open/Close
Also constantify the GUI keymap name
2011-10-27 10:46:22 -05:00