Commit Graph
3567 Commits
Author SHA1 Message Date
djsrv d4c825b089 GRAPHICS: Allow using Mac WM best color in 9patch 2020-07-31 16:38:37 -04:00
Nathanael Gentry 4c996feb5d GRAPHICS: MACGUI: MacText: Fix selection condition
Outside the while loop we only check pos > 0 once.
2020-07-31 01:08:56 -04:00
Nathanael Gentry 1ef07ff5dd GRAPHICS: MACGUI: MacText: Fix selection offsets
There is an additional "character" at the end of each line that we weren't
counting, which is what caused selection setting to get off.
2020-07-31 01:08:45 -04:00
Nathanael Gentry d9e2420e90 GRAPHICS: MACGUI: Fix warnings 2020-07-30 13:54:11 -04:00
Nathanael Gentry 4907aae05e GRAPHICS: MACGUI: MacText: Add selection index getter 2020-07-30 13:54:11 -04:00
Eugene Sandulenko b91cd981ef GRPAHICS: Match new[] with proper delete[] 2020-07-27 12:15:11 +02:00
Scott Percival 4bfffc43a7 DIRECTOR: Move widgets from cast members to channels (#2372)
This change is required to support copies of the same cast member running in different channels.

* DIRECTOR: Move widget ownership from cast member to channel

* DIRECTOR: Cache cast dimensions from createWidget

* DIRECTOR: Add null checks for createWidget

* GRAPHICS: MACGUI: Clear active/hover WM references if the widget is destroyed

* DIRECTOR: LINGO: Re-add null check for kTheEditableText

* DIRECTOR: Avoid destroying widgets if the channel isn't dirty

* DIRECTOR: Fix dirty test

* DIRECTOR: Fix text field writeback

* DIRECTOR: Fix null cast check

* DIRECTOR: Add bbox as argument to createWidget

* DIRECTOR: Add setCast method to Channel

* DIRECTOR: Fix use-after-free in Channel::getMask

* DIRECTOR: Fix bounding box for Button sprites

* DIRECTOR: Cache widget dimensions in cast member

* DIRECTOR: Remove widget from channel if nextSprite is empty

* GRAPHICS: MACGUI: Fix MacText::splitString for empty string case

* DIRECTOR: Add null checks for movie and score in processEvents
2020-07-26 04:32:29 +00:00
Cameron Cawley 453cc63c02 BACKENDS: Remove unneeded use of Graphics::createPixelFormat 2020-07-25 13:32:45 +02:00
Cameron Cawley 0a29fced6e WII: Replace use of Graphics::ColorMasks 2020-07-25 13:32:45 +02:00
Cameron Cawley 80430b4756 GRAPHICS: Ensure that creating a ManagedSurface from another preserves the palette 2020-07-25 13:29:09 +02:00
Cameron Cawley 731596b5f7 GRAPHICS: Support converting between different palettes using ManagedSurface 2020-07-25 13:29:09 +02:00
Cameron Cawley 44e948a283 GRAPHICS: Support full alpha when blitting using masks in ManagedSurface 2020-07-25 13:29:09 +02:00
djsrv 1f48c98b7b GRAPHICS: MACGUI: Refesh WM on set window visible 2020-07-24 14:32:54 -04:00
djsrv d7b1d27ccd GRAPHICS: MACGUI: Add title functions 2020-07-24 00:32:02 -04:00
Nathanael Gentry 51c7e019d9 GRAPHICS: MacCursor: Make two virtual functions
This is for the Director engine, which has a cursor class inheriting from MacCursor.
2020-07-22 10:20:56 -04:00
Vladimir Serbinenko 49979f1665 GRAPHICS: Support 4-bit windows cursors 2020-07-22 00:06:36 +02:00
Nathanael Gentry a7426c2872 GRAPHICS: MACGUI: Eliminate window composition surface
Now there is just the composeSurface from the widget. This fixes a bug where the
inner window contents would be blitted with transparency and also eliminates a
redundant copying. Now the border and inner surfaces are composed together on demand.
2020-07-21 14:48:27 -04:00
Nathanael Gentry 4d2da628df GRAPHICS: MACGUI: Set WM cursor visible on cursor pop 2020-07-20 16:49:11 -04:00
Eugene Sandulenko 540fdb1de6 GRAPHICS: MACGUI: Initialize newly added class variables 2020-07-20 15:05:45 +02:00
Eugene Sandulenko fff4cc4fe1 GRAPHICS: MACGUI: Properly draw re-activated MacText 2020-07-19 15:43:45 +02:00
Eugene Sandulenko 575d79b1d4 GRAPHICS: MACGUI: Do not draw selection on non-active MacText 2020-07-19 15:43:45 +02:00
Eugene Sandulenko af7c9ab14f GRAPHICS: MACGUI: Implement API for setting selection in MacText 2020-07-19 15:43:45 +02:00
Cameron Cawley 352653b8a2 GRAPHICS: Add a function for scaling a standard Graphics::Surface
This also makes use of it in the SCI and Wintermute engines
2020-07-18 12:16:52 +02:00
Cameron Cawley ff1474591f GRAPHICS: Allow using scaleBlitBilinear using different pixel formats and pitches 2020-07-18 12:16:52 +02:00
Cameron Cawley b2f2069fb0 GRAPHICS: Move code for bilinear scaling out of TransparentSurface 2020-07-18 12:16:52 +02:00
Cameron Cawley 42019d4252 GRAPHICS: Move code for nearest neighbour scaling out of TransparentSurface 2020-07-18 12:16:52 +02:00
Nathanael Gentry 79acd63dc0 GRAPHICS: MACGUI: Generalize WM cursor handling 2020-07-18 00:37:57 -04:00
Nathanael Gentry 0b6e441241 GRAPHICS: MacCursor: Change private to protected 2020-07-18 00:37:57 -04:00
Eugene Sandulenko fe3ddd12a2 GRAPHICS: MACGUI: Initial code for marking whole text 2020-07-18 00:46:16 +02:00
Eugene Sandulenko 0654be0322 GRAPHICS: MACGUI: Implement hashing to findBestColor() 2020-07-17 14:19:22 +02:00
Nathanael Gentry 91409d2cc1 GRAPHICS: MACGUI: MacWidget: Handle priorities properly 2020-07-16 18:36:33 -04:00
Nathanael Gentry a292aab351 GRAPHICS: MACGUI: Add missing window manager assignment 2020-07-16 18:36:24 -04:00
Eugene Sandulenko ed76a70d58 GRAPHICS: MACGUI: Fix warning 2020-07-17 00:30:56 +02:00
Nathanael Gentry dfd522bbe1 GRAPHICS: MACGUI: Reduce erroneous button activations 2020-07-16 10:31:51 -04:00
Nathanael Gentry e23c264873 GRAPHICS: MACGUI: Remove mouseDownWidget
The functionality I needed here can be implemented in the Director engine instead.
2020-07-16 09:59:05 -04:00
Nathanael Gentry 296b42b2c0 GRAPHICS: MACGUI: Don't redundantly clear text surface
This fixes the issue in Director where text redrawing would overwrite the button
indication. Now, the changed-area clearance in MacText::render is the only
clearance of the text surface that occurs.

The contentIsDirty setting is removed from MacButton because this flag is
already reset in MacText::draw.
2020-07-16 00:27:37 -04:00
Eugene Sandulenko a24a934a97 GRAPHICS: MACGUI: Fix warning 2020-07-15 23:31:10 +02:00
Nathanael Gentry d770b21094 GRAPHICS: MACGUI: Remove macInvertPixel callback
Instead, the addition to macDrawPixel is used instead.
2020-07-15 11:50:57 -04:00
Nathanael Gentry 454be019ff DIRECTOR: Remove maskSurface from MacWidget 2020-07-13 13:29:54 -04:00
Eugene Sandulenko 24695be687 GRAPHICS: MACGUI: Added sanity check 2020-07-13 11:41:54 +02:00
Eugene Sandulenko 670ea3485f GRAPHICS: MACGUI: Extend setVisible() method to allow proper overloading 2020-07-10 10:06:11 +02:00
djsrv a7319b0df5 GRAPHICS: MACGUI: Fix window layering
If a window is redrawn, any windows on top of it need to be redrawn.
2020-07-09 16:29:42 -04:00
djsrv 57bb4359ef DIRECTOR: LINGO: Implement the visible of window 2020-07-09 00:54:31 -04:00
djsrv 94d8c49a84 DIRECTOR: LINGO: Properly init/destroy windows 2020-07-09 00:37:23 -04:00
djsrv 3aaeced035 GRAPHICS: MACGUI: Allow windows to be hidden 2020-07-08 17:10:55 -04:00
Nathanael Gentry 03ddc4dd4d GRAPHICS: MACGUI: Standardize destructors for widget subclasses 2020-07-07 16:41:53 -04:00
Eugene Sandulenko 927825f6ac GRAPHICS: MACGUI: Fix overridden method footprint 2020-07-07 12:17:18 +02:00
Nathanael Gentry 63071473af Revert "GRAPHICS: MACGUI: Remove colour settings from base widget"
This reverts commit 39c4a0f524.
2020-07-06 23:15:56 -04:00
Nathanael Gentry 39c4a0f524 GRAPHICS: MACGUI: Remove colour settings from base widget
The Director engine, for which I introduced this setting, has also been updated.
To account for different ink types, the background colour will be applied in the
blitting step, and each text chunk keeps its own palette information.
2020-07-06 23:06:04 -04:00
djsrv d8725510b6 GRAPHICS: MACGUI: Don't draw border over contents 2020-07-06 13:12:55 -04:00