aboutsummaryrefslogtreecommitdiff
path: root/gui/gui-manager.cpp
AgeCommit message (Collapse)Author
2018-03-12GUI: Remove the ThemeItem draw queuesBastien Bouclet
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-01-27GUI: Remove Dialog::markAsDirty to expose full GUI redrawsBastien Bouclet
2018-01-27GUI: Remove explicit redraw when scrolling the ScrollContainerBastien Bouclet
The redraw is already handled by the GUI main loop
2018-01-27GUI: Implement dirty-checking for widget redrawsBastien Bouclet
2018-01-27GUI: Rework the frame limiter to actually reach the target framerateBastien Bouclet
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.
2017-07-10Revert "COMMON: Change way the Singleton instances are instantiated"Eugene Sandulenko
This reverts commit eefa72afa1978a9dea10f5b1833fcc8f58a3468e. With this patch ConfigManager is broken.
2017-07-10COMMON: Change way the Singleton instances are instantiatedThierry Crozat
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-03-18GUI: Fix a signed vs unsigned comparison warningBastien Bouclet
2017-03-13JANITORIAL: Remove trailing spacesEugene Sandulenko
2017-03-13GUI: Fix warningsEugene Sandulenko
2017-03-10GUI: Allow delayed deletion of GuiObjectThierry Crozat
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.
2016-11-12Merge pull request #720 from ottogin/gui-events-fixEugene Sandulenko
GUI: Fix "eaten" event by dialog which was closed
2016-08-24GUI: Add SaveLoadCloudSyncProgress in ScummModern themeAlexander Tkachev
ScummVM would probably crash when using a theme without SaveLoadCloudSyncProgress dialog described.
2016-07-03GUI: Make ScrollContainerWidget do full redrawAlexander Tkachev
2016-04-06GUI: When dialogs gain focus, inform them of the current mouse positionOri Avtalion
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-05GUI: Increase update screen rate to 60HzLothar Serra Mari
2016-04-05GUI: Update _lastRedraw before calling updateScreenLothar Serra Mari
This reduces the cursor lags on some systems.
2016-03-24GUI: Fix "eaten" event by dialog which was closedottogin
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.
2015-11-11GUI: Do not show splash when ran from launcherEugene Sandulenko
2014-08-28GUI: change FullScreen into fullscreenBen Castricum
This makes it consistant with other references to fullscreen.
2014-02-18GUI: Make GPL headers consistent in themselves.Johannes Schickel
2013-10-19GUI: Check for screen change whenever an event is polled.Johannes Schickel
This should *hopefully* really fix all GUI crashes when resizing with OpenGL.
2013-07-06ALL: Don't use EventRecorder at all when not compiled inMatthew Hoops
2013-05-17RECORDER: Implement Events RecorderEugene Sandulenko
2012-06-20GUI: Allow tooltips to be changed after widget creation.Johannes Schickel
2012-05-03GUI: Implemented pressed state for buttonsOleksiy Kurochko
2012-03-02KEYMAPPER: Map non-key custom input eventsTarek Soliman
This also makes the keymapper be in charge of keymapping logic
2012-02-22ALL: Fix some signed/unsigned comparison warnings.Johannes Schickel
2012-02-21KEYMAPPER: Remove automapping dead codeTarek Soliman
2012-02-20KEYMAPPER: Move F7 and F8 handling to DefaultEventMapperTarek Soliman
2012-02-13KEYMAPPER: Fix Action ctor args in most keymapsTarek Soliman
2012-02-04KEYMAPPER: Added Toggle FullScreen actionTarek Soliman
2012-01-30GUI: Work around bug #3481395.Johannes Schickel
The bug in question is: "LAUNCHER: Can't quit from unsupported game dialog".
2012-01-07KEYMAPPER: Add failsafe code for popping into Keymapper itselfTarek Soliman
Thanks LordHoto
2012-01-07KEYMAPPER: Only push/pop the gui keymap once per gui sessionTarek Soliman
The removes a bit of waste when gui dialogs are opened. Multiple gui keymaps were being pushed.
2011-12-30KEYMAPPER: Simplify calling getKeymapTarek Soliman
2011-10-31KEYMAPPER: Put the gui keymap pushing/popping back in GuiManager::runLoopTarek Soliman
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-27KEYMAPPER: Make sure GuiManager only pops gui keymapsTarek Soliman
2011-10-27KEYMAPPER: Skip GUI keymap when displaying active keymap in keymapper dialogTarek Soliman
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-06-30ALL: Require DECLARE_SINGLETON to be used in the Common namepsaceOri Avtalion
Silences the clang warning: static data member specialization of '_singleton' must originally be declared in namespace 'Common'; accepted as a C++0x extension [-Wc++0x-extensions] Wrapping "namespace Common {}" around the macro assignment causes clang to complain about a spurious semicolon, and removing the semicolon at the end of the macro causes some editors to misbehave. Changing the requirement of using the macro in one namespace (the global) to another (Common) seems a small price to pay to silence a warning.
2011-06-01Merge branch 'branch-1-3-0' into masterMax Horn
I manually resolved all conflicts, and inspected every single change. Many were due to the version string mismatch and thus easily resolved. The MSVC project files add in the 1-3-0 branch were not merged, neither where the changes to gui/themes/translations.dat. Conflicts: NEWS backends/base-backend.cpp backends/graphics/samsungtvsdl/samsungtvsdl-graphics.cpp backends/module.mk backends/platform/ds/arm9/makefile backends/platform/psp/README.PSP backends/platform/samsungtv/main.cpp backends/platform/samsungtv/samsungtv.cpp backends/saves/posix/posix-saves.cpp base/commandLine.cpp base/internal_version.h base/main.cpp common/array.h configure devtools/create_project/create_project.cpp dists/android/AndroidManifest.xml dists/android/plugin-manifest.xml dists/iphone/Info.plist dists/irix/scummvm.spec dists/macosx/Info.plist dists/redhat/scummvm-tools.spec dists/redhat/scummvm.spec dists/scummvm.rc dists/slackware/scummvm.SlackBuild dists/wii/meta.xml engines/sci/parser/vocabulary.cpp engines/tinsel/handle.cpp gui/themes/translations.dat
2011-05-25ALL: behaviour -> behaviorMatthew Hoops
2011-05-21DS: Port of changes from branch-1-2-0 that I should really have moved into ↵agent-q
the trunk. "DS: Prevent the command line help string from being included in the binary." 5f3a90a5f6911188b8d1ded08dbdf6d233e9eb7b "GUI: Allow disabling of Mass Add dialog. Saves a few Kb of binary size on the DS, and is not particularly useful on that platform." 240ff87cf4472538d25a1c5628c8d15f1791ab1c "GUI: Don't search for theme zip files on startup when running on the DS. Themes aren't supported anyway, and the search severely delays startup." fe3b18ce0df03117081e83d99f4a2cbd864d3286
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-04-28JANITORIAL: Reduce header dependencies in shared codeOri Avtalion
Some backends may break as I only compiled SDL
2011-04-05GUI: Update the screen after handling eventsdhewg
Fixes crash on droid: game -> gmm -> save -> click entry (EVENT_SCREEN_CHANGED due to vkeybd beeing shown) -> delete -> confirm another EVENT_SCREEN_CHANGED gets in simultaneously (due vkeybd being deactivated) and the parent dialog updated Rects out of bounds.
2011-02-24GUI: Fix two-step renderingdhewg
This is used when changing directories in the 'add game' dialog or when choosing another tab in the option dialog. Only blit to the overlay on the final pass. Gets rid of highly annoying flickers on androids
2011-02-14GUI: Update cursor palette handling for RGBA->RGB change.Johannes Schickel
2010-11-30I18N: Don't build TranslationManager when translation is disabled.Jordi Vilalta Prat
svn-id: r54684
2010-11-18GUI: Make activeDialog in runLoop const, since it should not be changed.Johannes Schickel
svn-id: r54346