Commit graph

310 commits

Author SHA1 Message Date
av-dx
b348756503 GUI: Add drawFoldIndicator() 2021-11-12 14:46:34 +01:00
av-dx
b554a1a6bc GUI: Made few get functions const 2021-11-12 14:46:34 +01:00
av-dx
e8bee56f9a JANITORIAL: Formatting fixes 2021-11-12 14:46:34 +01:00
av-dx
4bc9c6165c GUI: Add highlight on hover to grid items 2021-11-12 14:46:34 +01:00
av-dx
50611aa60b GUI: Fix transitive clipping behaviour 2021-11-12 14:46:34 +01:00
av-dx
dc878846ee GUI: Create new widgets for the grid system. 2021-11-12 14:46:34 +01:00
av-dx
999c5d2bc6 GUI: Testing grid view with constraints 2021-11-12 14:46:34 +01:00
trembyle
c740f96f63 COMMON: Normalize and document language maintenance
* Add documentation to add or maintain language values
* Fix and reorder existing entries to match ISO standards
2021-11-11 12:06:15 +01:00
Cameron Cawley
b444f53685 GUI: Specify the spacing for checkboxes and radio buttons in the theme files 2021-10-12 23:27:07 +01:00
Thierry Crozat
f3829243a1 GRAPHICS: Remove obsolete genLocalizedFontFilename FontManager
This function supported loading alternative bdf fonts when we were
using 8 bits encodings for the translations. Now that we are using
unicode for all language, this is no longer needed.
2021-10-02 23:50:21 +01:00
Thierry Crozat
6043a4e40c GUI: Remove query of charset in ThemeEngine
This was only used to be part of the name under which loaded TTF
fonts are stored in the FontMan font map. But since all the
languages now use the same charset (UTF-32), there is no longuer
a need to include the charset in the name. We still need to
differentiate between bdf fonts that can only be used for English
and TTF fonts, but this is is the case due to the font size being
included in the name. And otherwise we could just add a hardcoded
"-ttf" in the name.
2021-10-02 23:50:21 +01:00
SupSuper
c9d67e48a9 BACKENDS: Use FSNode::getName in string operations 2021-08-23 21:22:27 +01:00
Thierry Crozat
cbb627a40b COMMON: Change TransMan builtin language to "en" instead of "C" 2021-08-04 19:28:47 +01:00
Thierry Crozat
fe41c9bd7d GUI: Fix loading fonts when translations are disabled
This fixes bug #12737.
The issue is that ThemeEngine::addFont was skipping every font
when translations are disabled, including those for the English
language. Indeed for those the function is called with language
of "*" (since this is what is specified in the theme) and not
an empty string as the implementation assumed.
2021-07-16 21:23:29 +01:00
Le Philousophe
b47e8c6291 Revert "GUI: Amiga compilation fix"
This reverts commit 07ff61ea8d.
2021-07-07 19:10:04 +02:00
Paul Gilbert
0136043f09 COMMON: Revert Change Rect and Point to have int32 fields
This reverts commit 1c3e7fb4e9.
2021-07-06 20:35:42 -07:00
Paul Gilbert
07ff61ea8d GUI: Amiga compilation fix 2021-07-04 19:34:08 -07:00
Paul Gilbert
1c3e7fb4e9 COMMON: Change Rect and Point to have int32 fields 2021-07-04 18:24:26 -07:00
Le Philousophe
e62e9e84d5 GUI: Don't draw text when the rect planned for it is too small
Rect is not valid anymore and we get assertion failures
2021-06-20 11:48:19 +02:00
Martin Gerhardy
5af1192580 BACKENDS: fixed segfault in EventRecorder with buffer out of bounds writes
==3124361== Invalid write of size 8
==3124361==    at 0x483F803: memmove (vg_replace_strmem.c:1270)
==3124361==    by 0x4DBF61: SurfaceSdlGraphicsManager::grabOverlay(void*, int) const (surfacesdl-graphics.cpp:1753)
==3124361==    by 0x482051: ModularGraphicsBackend::grabOverlay(void*, int) (modular-backend.cpp:215)
==3124361==    by 0x434EE1: GUI::ThemeEngine::clearAll() (ThemeEngine.cpp:376)
==3124361==    by 0x40128E: GUI::EventRecorder::preDrawOverlayGui() (EventRecorder.cpp:558)
==3124361==    by 0x481DB2: ModularGraphicsBackend::updateScreen() (modular-backend.cpp:173)
==3124361==    by 0x559967: Graphics::Screen::updateScreen() (screen.cpp:62)
==3124361==    by 0x55991C: Graphics::Screen::update() (screen.cpp:56)
==3124361==    by 0x38AFC7: TwinE::TwineScreen::update() (twine.cpp:126)
==3124361==    by 0x3B8759: TwinE::Screens::adjustPalette(unsigned char, unsigned char, unsigned char, unsigned int const*, int) (screens.cpp:150)
==3124361==    by 0x3B8A89: TwinE::Screens::fadeToPal(unsigned int const*) (screens.cpp:207)
==3124361==    by 0x3B8403: TwinE::Screens::loadImage(int, int, bool) (screens.cpp:80)
==3124361==  Address 0x31453050 is 16 bytes after a block of size 512,000 alloc'd
==3124361==    at 0x483AB65: calloc (vg_replace_malloc.c:760)
==3124361==    by 0x55B38C: Graphics::Surface::create(unsigned short, unsigned short, Graphics::PixelFormat const&) (surface.cpp:75)
==3124361==    by 0x551111: Graphics::ManagedSurface::create(unsigned short, unsigned short, Graphics::PixelFormat const&) (managed_surface.cpp:153)
==3124361==    by 0x4352D5: GUI::ThemeEngine::setGraphicsMode(GUI::ThemeEngine::GraphicsMode) (ThemeEngine.cpp:453)
==3124361==    by 0x434A52: GUI::ThemeEngine::init() (ThemeEngine.cpp:324)
==3124361==    by 0x43501B: GUI::ThemeEngine::refresh() (ThemeEngine.cpp:394)
==3124361==    by 0x405780: GUI::GuiManager::screenChange() (gui-manager.cpp:603)
==3124361==    by 0x405C6B: GUI::GuiManager::processEvent(Common::Event const&, GUI::Dialog*) (gui-manager.cpp:677)
==3124361==    by 0x404EBA: GUI::GuiManager::runLoop() (gui-manager.cpp:429)
==3124361==    by 0x3FD847: GUI::Dialog::runModal() (dialog.cpp:77)
==3124361==    by 0x36D747: launcherDialog() (main.cpp:106)
==3124361==    by 0x36FF92: scummvm_main (main.cpp:552)

It looks like the _videoMode.overlayHeight in SurfaceSdlGraphicsManager::grabOverlay and ThemeEngine::_backBuffer::h are somehow out of sync after
starting the game in a different resolution as the gui was started with. So the overlayHeight is updated - but the backbuffer (Surface) is not resized.

This is with event recorder being active - right after starting the game and switching the resolution.
2021-06-19 14:34:52 +02:00
Cameron Cawley
03b9943ec0 Revert "GUI: Convert the cursor bitmap to the overlay format"
This reverts commit 26dc725ed2.
2021-05-15 00:20:00 +01:00
Cameron Cawley
26dc725ed2 GUI: Convert the cursor bitmap to the overlay format 2021-05-14 22:37:24 +02:00
Martin Gerhardy
9d82fa51df COMMON: removed USE_TTS check from engines
OSystem now just returns a nullptr if there is no text to speech manager instance
(because none is compiled into the binary, or the system doesn't provide support
for it). This removed the need for the engine authors to add scummvm osystem compile
time options checks into their engine code
2021-05-03 14:13:41 +03:00
Eugene Sandulenko
12f107af67
GUI: Gracefully process broken images 2021-05-01 01:49:47 +02:00
Eugene Sandulenko
ad50a1471a
GUI: Initialize class variables 2021-05-01 01:49:47 +02:00
Eugene Sandulenko
5e7fe2dc57
JANITORIAL: Replace spaces in indentation with tabs 2021-04-15 21:20:36 +02:00
Eugene Sandulenko
b2be9bb2e1 GUI: If SVG file is present, do not bother with loading BMPs 2021-04-11 21:21:44 +02:00
Eugene Sandulenko
3f1ee55268 GUI: Cleanup not needed code 2021-04-11 21:21:44 +02:00
Eugene Sandulenko
0fc5c4c391 GUI: Keep SVGs in 32-bit format until very rendering 2021-04-11 21:21:44 +02:00
Eugene Sandulenko
f88a622e9a GUI: Prerender SVG on theme loading
We know the resolution and we do reread everything on the resolution
change anyway. This simplifies everything: we just draw transparent
surfaces everywhere, regardless of their source format.
2021-04-11 21:21:44 +02:00
Eugene Sandulenko
d3f5d34b62 GRAPHICS: Unify VectorRenderer blitting routines 2021-04-11 21:21:44 +02:00
Eugene Sandulenko
2839715a45 GUI: Remove TransparentSurface remnants aka alphabitmaps from themes 2021-04-11 21:21:44 +02:00
Eugene Sandulenko
bd083c7fa7 GUI: Switch GUI to ManagedSurface 2021-04-11 21:21:44 +02:00
Eugene Sandulenko
3021f34060 GUI: Add support for specified dimensions for bitmaps in theme file
When we are using SVG, there is no reliable way to get the proper
dimensions. The original code was relying on the dimensions of
the BMP file, and then was using those for understanding the
rendering positions e.g. for PicButtons.
2021-04-11 21:21:44 +02:00
Eugene Sandulenko
09f11bd37e GRAPHICS: Fix transparency in ManagedSurface bitmaps 2021-04-11 21:21:44 +02:00
Eugene Sandulenko
7fe0073823 GUI: Render ManagedSurface widget with transparency 2021-04-11 21:21:44 +02:00
Eugene Sandulenko
5f80a79871 GUI: Fix crash when requested 0 x 0 SVG rendering 2021-04-11 21:21:44 +02:00
Eugene Sandulenko
4a58f08a37 GUI: Load SVGs from theme 2021-04-11 21:21:44 +02:00
Eugene Sandulenko
04f040afce GUI: Reload all bitmaps on theme reload
Since now we are scaling them, it is essential to scale the originals,
otherwise we have double scaling
2021-04-11 21:21:44 +02:00
Eugene Sandulenko
9e746e04f2 GUI: Always scale padding 2021-04-11 21:21:44 +02:00
Eugene Sandulenko
fad56e39d1 GUI: Scale theme images 2021-04-11 21:21:44 +02:00
Eugene Sandulenko
b29f457548 GUI: Scale theme on loading 2021-04-11 21:21:44 +02:00
Eugene Sandulenko
a0d4162a2b GUI: Compute base scale factor and set it for ThemeParser 2021-04-11 21:21:44 +02:00
Le Philousophe
577322f3fe GUI: Don't leak theme and TextDrawData when loading fails 2021-02-17 12:57:23 +00:00
Zvika Haramaty
606eeae46f COMMON: move convertBiDiString out of TranslationManager 2020-11-04 22:27:24 +00:00
athrxx
e7476495ab GUI: prevent unloading of extra font on refresh
When hitting pause in a CJK SCUMM game and then switching to fullscreen the call to ThemeEngine::refresh() would kill the required extra font.
2020-10-31 20:47:02 +01:00
Thierry Crozat
49a36e6828 GUI: Fix compilation with some compilers 2020-10-30 23:04:40 +00:00
Thierry Crozat
7a1b3983a2 GUI: Remove unused functions in ThemeEngine
They were leftovers from the transition to U32String.
2020-10-30 22:54:09 +00:00
athrxx
5b6ffeaa3d GUI: allow ingame CJK dialogs regardless of the launcher language
This allows a text widget to be expressly marked as Japanese, Korean or Chinese, so that the theme engine may use an appropriate font.
2020-10-30 21:36:23 +01:00
Eugene Sandulenko
76ec66bfa6 Revert "GUI: Properly load fonts when translations are disabled"
This reverts commit 62c4d6cc0a.

This broke non-Latin fonts loading.
2020-10-01 02:08:39 +02:00