32 Commits

Author SHA1 Message Date
Cameron Cawley 8a01c2a0b0 GUI: Use Common::SharedPtr for reusing surfaces 2026-04-14 18:46:14 +03:00
Cameron Cawley 70050f9d0c GRAPHICS: Remove duplicate scaling function 2026-04-14 18:46:14 +03:00
Filippos Karapetis e157b7044e GUI: Use C++ 11 range-based for loops 2025-03-27 13:47:57 +08:00
Cameron Cawley fb2503d02e GUI: Only use a transparent colour for BMP images 2023-04-09 12:54:38 +02:00
antoniou79 07c1e5cc2a GUI: Fix thumbnails for event recorder dialogue
Also prevent segmentation fault cases related to low-res or switching from low-res to hi-res

And fix memory leak related to loading and scaling of the thumbnail image

A lot of the updated logic is borrowed from the saveload-dialog.cpp for the simple list view (with the thumbnail to the right of the list).
2022-06-12 15:08:01 +02:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Eugene Sandulenko 877f23f2eb GUI: Fix include paths 2021-11-12 14:46:34 +01:00
Orgad Shaneh 484cfc5644 EVENTRECORDER: Fix date on initial name
Month was off by 1.
2021-07-09 00:07:55 +03:00
Martin Gerhardy c17f25d1ab GUI: sort the event recorder files
the default name only contains the date and the game id. Combined
with the random sort of the filesystem, it is almost impossible to
select the 'latest' record of the same game at the same day.
2021-07-07 19:20:10 +02:00
Eugene Sandulenko bd083c7fa7 GUI: Switch GUI to ManagedSurface 2021-04-11 21:21:44 +02:00
Cameron Cawley c877097b49 ALL: Remove use of "" in Common::U32String constructors 2020-11-16 16:56:58 +00:00
Eugene Sandulenko 0fba34f8a9 GUI: Update EventRecorder to U32 2020-08-30 14:49:35 +02:00
aryanrawlani28 cbff58200f GUI: U32: Use u32 for EditRecordDialog and RecorderDialog
- Mark _authors as U32String
- Adjust accordingly in EditRecordDialog
- Some janitorial whitespaces fixes
2020-08-30 14:43:41 +02:00
aryanrawlani28 f800ca4ada GUI: U32: Convert majority of code to use U32
This commit also includes some additional major changes.

- Return U32String from TransMan getTranslation()
- Change tooltips to be U32Strings
- Remove temporary code of convertToU32String
- U32 Support various dialogs (Browser, FileBrowser, Messages, Chooser, etc)
- U32 for music plugins
- U32 for OSD messages
- Add some helper functions to ustr.cpp
- Change default tooltips from nullptr & 0 -> ""
- Some runtime exceptions may occur when changing languages due to incorrect String::Format
2020-08-30 14:43:41 +02:00
Cameron Cawley 6f1b1c8525 GUI: Fix compilation when the event recorder is enabled 2020-06-15 16:59:56 +01:00
Cameron Cawley 00e3c03755 ALL: Remove unnecessary graphics/colormasks.h includes 2020-06-15 16:59:34 +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 c0d8b6d9fc GUI: Introduce dynamic layouts
Prior to this change, a GUI layout was only affected by the screen size.
Now, a layout can additionally be influenced by the GUI dialog and widgets
that uses it. This capability is leveraged to implement the following
features:

* Layout elements that are not bound to a GUI widget do not take space.
   This means that dialogs where the widgets shown depend on for example
   a feature being enabled at configure time no longer have blank spaces.
* Widgets can define a minimal required size for their contents not to be
   cut. For now this is only used for buttons so their width is always
   sufficient for their caption not to be cut. This mechanism could be
   applied to other widget types in the future.
2020-01-04 10:56:25 +01:00
Bastien Bouclet c142838122 BASE: Change the command line interface to use engine-qualified game names
Qualified game names have the following form: engineId:gameId.
Unqualified game names are still supported as long as they are not
ambiguous. However they are considered deprecated and are no longer
displayed by the --list-games command.
2019-11-03 11:43:00 +01:00
Bastien Bouclet bb813719b5 ENGINES: Change targets to have an 'engine ID'
The engine ID identifies which engine should be used to launch the target.
Also remove the 'single ID' system. Different games from engines that used
that system now have different game IDs.

Also-By: Matthew Hoops <clone2727@gmail.com>
2019-11-03 11:43:00 +01:00
Bastien Bouclet 8fb149e3c7 ENGINES: Change MetaEngine::findGame to return a plain game descriptor 2018-05-10 09:04:23 +02:00
Bastien Bouclet 0496ede62f GUI: Implement dirty-checking for widget redraws 2018-01-27 18:12:34 +01:00
Colin Snover d087c9605f BASE: Remove bad casts between incompatible Plugin types
Previously, a C-style cast was used to convert a
Common::Array<Plugin *>, populated with pointers to StaticPlugin
and DynamicPlugin instances, to a
Common::Array<PluginSubclass<T> *>, but PluginSubclass<T> is a
*sibling* class to StaticPlugin/DynamicPlugin, so this cast was
invalid and the results undefined. The methods for retrieving
subclasses of plugins can't be easily changed to just generate an
array of temporary wrapper objects that expose an identical API
which dereferences to the preferred PluginObject subclass because
pointers to these objects are retained by other parts of ScummVM,
so the wrappers would needed to be persisted or they would need to
just re-expose the underlying Plugin object again. This indicated
that a way to solve this problem is to have the callers receive
Plugin objects and get the PluginObject from the Plugin by
explicitly stating their desired type, in a similar manner to
std::get(std::variant), so that the pattern used by this patch to
solve the problem.

Closes gh-1051.
2017-12-03 20:26:38 -06:00
Ori Avtalion 253e18c440 JANITORIAL: Reduce GUI header dependencies 2016-04-14 13:30:14 +03:00
Thierry Crozat f2827f0fe5 I18N: Mark additional string for translation 2015-10-11 18:57:54 +01:00
Johannes Schickel f5dfe6725a GUI: Make GPL headers consistent in themselves. 2014-02-18 02:39:35 +01:00
Johannes Schickel ddcfdf5329 GUI: Allow the event recorder dialog to be closed.
This is a regression from 6e4217e1ba.

setResult does not automatically close the dialog. However,
Dialog::handleCommand will close the dialog when kCloseCmd is received.
2013-07-15 13:40:59 +02:00
Sven Hesse 5e835ef915 RECORDER: Fix indenting 2013-07-14 19:04:09 +02:00
Sven Hesse 989ea7cb56 JANITORIAL: Remove trailing whitespace 2013-07-14 19:01:47 +02:00
Eugene Sandulenko 6e4217e1ba RECORDER: Fix CID 1046887. Missing break in switch 2013-07-14 19:35:17 +03:00
Eugene Sandulenko 54d0eef6f2 RECORDER: Fix CID 1046882. Uninitalized variables 2013-07-14 19:30:35 +03:00
Eugene Sandulenko f59512c47e RECORDER: Implement Events Recorder 2013-05-17 00:18:09 +03:00