Commit Graph
93 Commits
Author SHA1 Message Date
Thierry Crozat 32bbf489e9 GUI: Add exitLoop() method to GuiManager
The idea is to allow backends to start a game even after the
LauncherDialog has been created, and for that they need a way
to close the existing GUI dialogs.
2020-09-13 00:21:34 +01:00
aryanrawlani28 12a4af77bd GUI: Code cleanup 2020-06-22 00:03:02 +02:00
aryanrawlani28 54279790b7 GUI: RTL: Enable RTL by default for Hebrew 2020-06-22 00:03:02 +02:00
aryanrawlani28 0f40989633 GUI: Code cleanup, add comments about RTL 2020-06-22 00:03:02 +02:00
aryanrawlani28 5e0d5b8322 GUI: RTL: Disable RTL by default 2020-06-22 00:03:02 +02:00
aryanrawlani28 a832e7f423 GUI: RTL: Allow switching from one layout to other after selecting languages
GUI: RTL: Add option for forced RTL from ConfMan
2020-06-22 00:03:02 +02:00
aryanrawlani28 ab4ac760fb GUI: RTL: Disable usage of RTL layout by default 2020-06-22 00:03:02 +02:00
aryanrawlani28 d968665110 GUI: Code cleanup and small issue fixes 2020-06-22 00:03:02 +02:00
aryanrawlani28 a7fe8ad7d8 GUI: Rename some variable and fix review issues 2020-06-22 00:03:02 +02:00
aryanrawlani28 e5fc39bb98 GUI: RTL: Support stacked dialogs and fix mouse events for them
GUI: RTL: Add helpers for overlay dialogs
2020-06-22 00:03:02 +02:00
aryanrawlani28 5be57e5394 JANITORIAL: Replace my todos with "GUI TODO:" 2020-06-22 00:03:02 +02:00
aryanrawlani28 5db49a6d1e GUI: RTL: Test for strict RTL GUI 2020-06-22 00:03:02 +02:00
Thierry Crozat a362d58821 GUI: Allow selecting the default TTS voice in the Options 2020-06-21 16:31:15 +01:00
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