1116 Commits

Author SHA1 Message Date
Torbjörn Andersson
a1c8db3201 JANITORIAL: Clean up some whitespace and double semicolons 2024-01-29 19:32:00 +01:00
Scott Percival
0562ff567c GRAPHICS: MACGUI: Move paragraph end marker when merging rows
Fixes issue where removing an empty line with backspace would remove the
previous empty line also.
2024-01-20 23:14:52 +01:00
Scott Percival
95b47042f0 GRAPHICS: MACGUI: Stop MacTextCanvas::chopChunk from removing last chunk
There needs to be at least one chunk per line of text, or else many
basic text operations will cause a crash.
2024-01-20 23:14:52 +01:00
Scott Percival
b9003c145f GRAPHICS: MACGUI: Fix fgcolor conversion in MacText 2024-01-20 23:14:52 +01:00
Scott Percival
2f16bf2e9f GRAPHICS: MACGUI: Remove pseudotransparency workaround in MacText
Needed in order to e.g. print white text on a black background in
Director.

This reverts 457b09cb4eabab4516230ec4a46d9340bd040bf4
2024-01-20 23:14:52 +01:00
Cameron Cawley
f3fbd2477c GRAPHICS: Allow specifying separate xdpi and ydpi values in loadTTFFont 2024-01-08 23:41:50 +01:00
Eugene Sandulenko
ed4ec96b44
GRAPHICS: MACGUI: Fix links with Unicode characters
If there are unicode characters in the link, it was leading to
wrong length calculation.

Example of such link:

  ![Menü-Symbol](menu.png \"Menü-Symbol\"){w=10em}

The problem is that for simplicity, we are working with UTF8 in
Markdown, but still with U32String in MacTextCanvas. This led to
the string length be calculated for UTF8, which is a multibyte
encoding. As a result, we were overshooting the link parsing
and reading texts as numbers.

This is kind of a hacky solution: we convert text to U32 before
caluclating the string length
2024-01-07 00:39:25 +01:00
Eugene Sandulenko
7361c0f2fa
GRAPHICS: MACGUI: Made readHex() more robust
This fixes crashes in Markdown with malformed translations
2024-01-05 01:04:08 +01:00
Eugene Sandulenko
df3ee65585
GRAPHICS: MACGUI: Added mre debug output 2023-12-30 22:17:18 +01:00
Eugene Sandulenko
3051af3732
GRAPHICS: MACGUI: Switched debug output to 'macgui' debug channel in MacFontManager 2023-12-30 01:05:26 +01:00
Eugene Sandulenko
b0a624df76
GRAPHICS: MACGUI: More debug output to MacFontManager 2023-12-26 21:28:28 +01:00
Cameron Cawley
5b1b14ad80 COMMON: Mark more symbols as const 2023-12-26 20:23:59 +01:00
Le Philousophe
226de788c8 GRAPHICS: Make API use the Path class 2023-12-24 13:19:25 +01:00
Torbjörn Andersson
d4c9c7208f GRAPHICS: MACGUI: Avoid recursion in Mac menu event processing
When moving the mouse through the menu bar, over a part that's not
occupied by menu items, the Mac menu class will start calling
processEvent() recursively. This is bad for two reasons: During the
recursion (which can easily reach a depth of dozens or even hundreds of
calls) there is no delay, so it will use 100% CPU. And once the
recursion unwinds, all the delays will come at once.

This moves the call to eventLoop() to after the first event has been
fully processed. Hopefully that will have approximately the same desired
effect, without any of the bad side effects.
2023-12-16 21:14:59 +01:00
elasota
9e13093610 GRAPHICS: Fix empty controlled statement warning 2023-12-11 23:07:20 +02:00
Matthew Duggan
0f795b481d GRAPHICS: MACGUI: Only set system palette if screen is CLUT8
This is needed to allow use of macgui components while 16-bit graphic games are
running, eg to display help screens.
2023-12-09 13:53:01 +11:00
Scott Percival
2c8d493984 GRAPHICS: MACGUI: Pass through key events even if window not editable
Active MacWindows should always be passed EVENT_KEYDOWN events by MacWindowManager.
Previously it would only do so if the mouse was in the vicinity.

Fixes text input on the savegame screen of Team Xtreme: Operation
Weather Disaster.
2023-12-02 02:47:40 +01:00
Scott Percival
7f5c07a738 MACGUI: Deactivate _lockedWidget when Window is removed
Fixes using the quit widget on the save screen of Team Xtreme: Operation
Weather Disaster.
2023-12-02 02:47:40 +01:00
AndywinXp
49ae002d6b GRAPHICS: MACGUI: Fix green borders in upper right and upper left corners of Mac menu bar
It probably went unnoticed until now because the menu bar is
mostly used for black and white games, and in those instances
the green color is converted to black.

Tested with Indy3, Loom, The Apartment, Spaceship Warlock,
and several WAGE games.
2023-12-01 21:08:04 +01:00
Eugene Sandulenko
63c8367ace
GRAPHICS: MACGUI: Indicate presence of a table in debug output in MacTextCanvas 2023-11-25 19:46:40 -08:00
Eugene Sandulenko
92b03145a2
GRAPHICS: MACGUI: Disable MacText with tables resizing
The problem is more complex than it appears, so, disabling this
before the release, because the current code is removing
tables on resize
2023-11-24 19:48:24 +01:00
Eugene Sandulenko
446908f458
GRAPHICS: MACGUI: Fix crash on reshuffling text after table in Markdown
Array::insert_at() is calling destructor for old data, whuch was freeing
the _table pointer that we are copying to new element which led to
use-after-free.

This moves MacTextLine cleanup to MacTextCanvas.
2023-11-23 00:13:33 +01:00
Torbjörn Andersson
b2568e05ce GRAPHICS: MACGUI: Attempt to fix threading issues
The menuTimerHandler() function is called from a timer, which means that
anything that it touches could potentially cause threading issues. I
suspect this is what's been causing the screen to go black for me a few
times, but it's not something I can reproduce at will. Add a mutex to
try and fix this.
2023-11-18 18:49:55 +01:00
AndywinXp
2efd9ab70a GRAPHICS: MACGUI: Add kWMModeForceMacBorder mode
This allows for having the Mac desktop arc even during Win95 mode.
2023-11-18 18:47:39 +01:00
Torbjörn Andersson
d63ad4c2e3 GRAPHICS: MACGUI: Don't filter keypresses in processMenuShortCut()
This is already done in keyEvent(), which is the only place where
processMenuShortCut() is called. This allows using Alt-<key> as
shortcut, which is consistent with how the Mac emulators I've tried does
it.
2023-11-18 18:47:39 +01:00
Torbjörn Andersson
0e76018a10 GRAPHICS: MACGUI: Handle menu shortcuts even when menus are hidden 2023-11-18 18:47:39 +01:00
Torbjörn Andersson
1b3e863801 GRAPHICS: MACGUI: Consider menu item font when calculating menu width
Mac Loom and Last Crusade use bold for their "About" menu item, and that
made the menu too narrow.
2023-11-18 18:47:39 +01:00
Eugene Sandulenko
ff0abf2b69
GRAPHICS: MACGUI: Fix crashes when dealing with empty MacTexts 2023-11-16 00:23:09 +01:00
Eugene Sandulenko
035fd6085b
GRAPHICS: MACGUI: Added more debug output to MacTextCanvas 2023-11-04 07:31:35 +01:00
Eugene Sandulenko
7eac71a4c7
GRAPHICS: MACGUI: Fixed computation of image sizes in pixels in MacTextCanvas 2023-11-01 00:27:34 +01:00
Eugene Sandulenko
175bf5c001
GRAPHICS: MACGUI: Use image extensiosn for calculating image dimensions in MacTextCanvas 2023-11-01 00:16:00 +01:00
Eugene Sandulenko
ddadee5daf
GRAPHICS: MACGUI: Copy defaultFormatting to MacTextCanvas 2023-10-31 23:16:13 +01:00
Eugene Sandulenko
fc00188eeb
GRAPHICS: MACGUI: Parse image extension string into a fixed format 2023-10-31 22:55:14 +01:00
Eugene Sandulenko
7e4c81e1ff
GRAPHICS: MACGUI: Pass image extensions from Markdown to MacTextCanvas 2023-10-31 22:55:09 +01:00
Eugene Sandulenko
6683a75954
COMMON: FORMATS: Pass image extensions to the user callbacks in Markdown 2023-10-31 01:58:55 +01:00
Eugene Sandulenko
4afcad492a
GRAPHICS: MACGUI: Fixed numbered list indentation in MacTextCanvas 2023-10-31 01:02:19 +01:00
Eugene Sandulenko
2dbfef826d
GRAPHICS: MACGUI: Added more debug output to MacTextCanvas 2023-10-31 01:01:38 +01:00
Eugene Sandulenko
d4cea997f8
GRAPHICS: MACGUI: Hid noisy debug output in table rendering 2023-10-30 01:25:41 +01:00
Eugene Sandulenko
85ea0aa22e
GRAPHICS: MACGUI: Wrap MaxTexCanvas table cell contents 2023-10-30 01:22:30 +01:00
Eugene Sandulenko
ad5fe9f2bc
GRAPHICS: MACGUI: Factored out MacTextCanvas::setMaxWidth() 2023-10-30 01:14:29 +01:00
Eugene Sandulenko
3d237bccf1
GRAPHCS: MACGUI: Made MacText::setMaxWidth() use reshuffleParagraph()
This preserves all formatting
2023-10-30 01:08:40 +01:00
Eugene Sandulenko
526c116bbe
GRAPHICS: MACGUI: Break infinite loop triggered in some cases
Triggered in wage:afm on attempt to go to the shop
2023-10-30 00:40:21 +01:00
Eugene Sandulenko
0652a4c246
GRAPHICS: MACGUI: Do not add extra line at end of the text when splitting MacText 2023-10-30 00:33:47 +01:00
Eugene Sandulenko
ca299d7ae1
GRAPHICS: MACGUI: Fix MacTexCanvas rendereing debug output 2023-10-30 00:28:05 +01:00
D G Turner
e851067c97 GRAPHICS: MACGUI: Fix Signed vs. Unsigned GCC Compiler Warning 2023-10-27 23:25:00 +01:00
Eugene Sandulenko
46e5e44da2
GRAPHICS: MACGUI: Hide MacTextCanvas debug output under compile-time macros 2023-10-27 02:30:28 +02:00
Eugene Sandulenko
867ec92bde
GRAPHICS: MACGUI: Removed superfluous warning 2023-10-27 01:14:52 +02:00
Eugene Sandulenko
2180be6b71
GRAPHICS: MACGUI: Restore paragraph mark after reshuffling 2023-10-27 01:14:25 +02:00
Eugene Sandulenko
1b99e013a7
GRAPHICS: MACGUI: Hid debug messages deeper 2023-10-27 01:11:59 +02:00
Eugene Sandulenko
ed8da34fff
GRAPHICS: MACGUI: Remove leftover variable 2023-10-26 03:54:56 +02:00