Commit Graph
110 Commits
Author SHA1 Message Date
Eugene Sandulenko 65b95d90ce GUI: Add missing override keyword 2022-04-15 22:39:47 +02:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
antoniou79 da461da6f6 GUI: Fix tooltip behavior to be less interruptive
The tooltip will show only if mouse cursor was moved but not on a hovered focused editText field

Changes and implications in this commit:
- Fix _lastMousePosition coordinates and time being updated upon giving focus to the tooltip
- Check for mouse cursor movement first in the decision for showing the tooltip, then check if sufficient time for mouse resting position has passed (kTooltipDelay).
- Prevents showing a tooltip for a widget if it is an editable field (editText) and has both mouse hovering above it and the current focus.
This is so that typing text is not interrupted / slowed down by a periodical display of the tooltip, if the mouse is hovering over the same text field that the user is editing.
- If mouse cursor is moved but lands on the same widget as the one that had its tooltip shown last, then show the tooltip but after a different (larger) delay kTooltipSameWidgetDelay.
- Still shows tooltip for other widgets, including editText ones, if the mouse is hovered over them and they are not the current focused editText widget.

The bug was mentioned for the Android port on the forums here:
https://forums.scummvm.org/viewtopic.php?p=95531#p95531
However, it is not Android specific, even though the slowdown is a lot more noticeable on an Android device.
2021-06-19 14:39:34 +02:00
Bastien Bouclet bcfb7145fa GUI: Allow engines to define a fully custom tab in the edit game dialog
By implementing MetaEngine::buildEngineOptionsWidget, engines can
instantiate a container widget that will be shown in the Engine tab of
the edit game dialog. The default implementation retains the existing
behavior and shows the extra GUI options.
2020-03-28 07:38:39 +01:00
Bastien Bouclet 7edff01e69 KEYMAPPER: Move the remap event capture logic out of the keymapper 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
Bastien Bouclet c566d02992 GUI: Add override markers where appropriate 2020-01-19 15:08:37 +01:00
Jaromir Wysoglad b5cebcbeae TTS: Add text to speech to the GUI. 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
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 0496ede62f GUI: Implement dirty-checking for widget redraws 2018-01-27 18:12:34 +01:00
Bastien Bouclet 9bb9c0d58e GUI: Focus the first 'focusable' widget when rebuilding dialogs
Fixes Trac#9838.
2017-06-13 07:21:34 +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
Johannes Schickel f5dfe6725a GUI: Make GPL headers consistent in themselves. 2014-02-18 02:39:35 +01:00
Eugene Sandulenko f59512c47e RECORDER: Implement Events Recorder 2013-05-17 00:18:09 +03:00
Johannes Schickel 0c312f8753 GUI: Remove unecessary ";". 2012-05-03 18:43:09 +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
strangerke 69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Ori Avtalion 9414d7a6e2 JANITORIAL: Reduce header dependencies in shared code
Some backends may break as I only compiled SDL
2011-04-28 15:08:58 +03:00
Eugene Sandulenko 01f9006ee7 GUI: Implement tooltips. FR #2821513.
FR #2821513: "GUI: add tooltips".
Added tooltips for Add Game button, clear field buttons and couple
other.

Current problem: Only first call correctly restores text. I could
not find where restore information gets lost.

svn-id: r49774
2010-06-15 10:52:35 +00:00
Max Horn 894e2aefe6 GUI: Unify various definitions of kOKCmd and move it to namespace GUI
svn-id: r48564
2010-04-06 09:26:43 +00:00
Max Horn f906c4e80f GUI: Tweaked the launcher so that TAB switches focus between the list and the quick search field
svn-id: r41311
2009-06-06 23:22:48 +00:00
Max Horn 6510226216 Renamed NewGui to GuiManager
svn-id: r35544
2008-12-25 23:55:36 +00:00
Jordi Vilalta Prat b1999a2a16 Fixed indentation and removed whitespaces at the end of line
svn-id: r35481
2008-12-22 11:22:15 +00:00
Max Horn fa942c42cc GUI: Got rid of most 'built-in' variables
svn-id: r35018
2008-11-12 12:53:53 +00:00
Vicent Marti b98f89c7f0 Merged GUI::Theme and Gui::ThemeEngine into the same class, GUI::ThemeEngine.
Massive cleanup.

svn-id: r34983
2008-11-10 11:24:55 +00:00
Max Horn 0508fec8a8 Pushing down some header deps
svn-id: r34936
2008-11-08 01:30:32 +00:00
Vicent Marti 1f2ce8b188 Manual merge of the GSoC2008 GUI branch. (71 files)
svn-id: r34757
2008-10-09 11:49:35 +00:00
Vicent Marti 2b52383534 Finished legacy API cleanup. Removed all legacy code.
Possible regressions.

svn-id: r33833
2008-08-13 17:46:00 +00:00
Vicent Marti 2d87b29058 GCC compiling fixes.
svn-id: r32877
2008-07-02 18:43:17 +00:00
Vicent Marti 0e4cd6fc8e Expanded InterfaceManager API to mimic NewGUI. (WIP)
svn-id: r32831
2008-06-28 16:49:39 +00:00
Jordi Vilalta Prat d6c34bdc4b Fixed the spaces before tabs.
svn-id: r30667
2008-01-28 00:14:17 +00:00
Max Horn 2243197f50 Changed GUI system to use Common::KeyState state
svn-id: r27786
2007-06-30 12:26:59 +00:00
Max Horn 218e132e37 Updated legal headers in source files, based on what Pidgin (the IM client formerly knowns as Gaim) does; added new (incomplete) COPYRIGHT file; updated copyright dates in a few spots
svn-id: r27024
2007-05-30 21:56:52 +00:00
Max Horn f8067d54e5 Fixing some memory leaks in the GUI code
svn-id: r26515
2007-04-15 19:03:25 +00:00
Max Horn a73c6c3670 Added new file gui/object.cpp (collecting GuiObject methods in there), and renamed Dialog::deleteWidget to Dialog::removeWidget (name was misleading, the removed object does *not* get deleted)
svn-id: r26147
2007-03-16 20:47:41 +00:00
Max Horn 1a10cacfb9 Renamed handleScreenChanged() -> reflowLayout() in the GUI code
svn-id: r23662
2006-08-04 13:55:53 +00:00
Max Horn 76116f36dd *Loads* of Common::String related optimizations. Woa, *tons* of methods were copying strings needlessly
svn-id: r22873
2006-06-03 13:33:39 +00:00
Torbjörn Andersson 09074b1685 More cleanup. We shouldn't need these widget size parameters either.
svn-id: r22799
2006-05-31 12:27:05 +00:00
Johannes Schickel 30787714d3 Started to prepare the gui for runtime resolution switches.
(some little things could be missing yet though)

svn-id: r22017
2006-04-19 01:05:28 +00:00
Eugene Sandulenko 5daa835cc7 - PopUpWidget (drop down list) does not shadow underlying dialog anymore
- Remove reduntant code in drawing pipeline. Topmost dialog was drawn
  up to 4 times

svn-id: r21998
2006-04-18 00:37:04 +00:00
Johannes Schickel b99632831f This should fix wrong colors of the scummvm logo in the new theme after screen change.
svn-id: r21953
2006-04-16 20:33:52 +00:00
Eugene Sandulenko 8a5f44d797 Converted last dialogs to new scheme. Now it seems to be everything. Please,
test throghoutly.

svn-id: r21157
2006-03-09 05:18:00 +00:00
Eugene Sandulenko fc84c7fc1d o More widgets fot alternative constructors
o Cleanup of launcher dialog
o Implemented useWithPrefix keyword

svn-id: r21131
2006-03-07 19:02:42 +00:00
Max Horn b34e207dbb Change CVS keywords to SVN keywords
svn-id: r20518
2006-02-11 10:08:56 +00:00
Johannes Schickel 5fda0cc6f1 - Fixes a bug that the debugger crashed while opening
- Changed gradient calculating
- added background saving for all dialog/widget backgrounds for now (change that later maybe)
- changed ScummDialog to use the colors of our launcher dialog

svn-id: r20276
2006-01-28 23:03:39 +00:00
Johannes Schickel 5051b080a2 - adds the new gui renderer also a new implementation for the classic gui
- adds a ImageMan and ImageDec class for loading and managing image files
 - adds a loader for zip files which is used by the new theme and the image manager
 - changes the widgets to use the new gui code
 - changes the scumm dialogs to use the new gui code
 - fixes a #include problem in the sky debugger with the new gui code

 To use the new gui copy gui/themes/default-theme.zip to your extrapath.
If the theme zip can not be found the gui will fallback to the classic theme.
If you want to change the gui styles use "gui_theme=classic" for the classic theme
and "gui_theme=default-theme" for the new theme.

Thanks to eriktorbjorn for testing and help with the new theme and to sev for
reviewing this patch.

svn-id: r20227
2006-01-27 15:43:23 +00:00
Eugene Sandulenko ea42bad781 Update copyright notice
svn-id: r20088
2006-01-18 17:39:49 +00:00