It's been about a month since the last release, so it's about time for another. Woopsi 0.27 is now available on the SourceForge site:
http://sourceforge.net/project/showf...roup_id=207650
Here's a screenshot of the lastest demo:
- Fixes:
- Renamed "font" to "sysfont".
- Moved font includes out of "all_gfx.h".
- Removed font inheritance (problematic with many gadgets).
- Made font an optional parameter in all gadget constructors.
- Removed font from constructors of window border gadgets that do not use a font.
- Woopsi height based on top screen offset instead of an arbitrary number.
- Private class members set to protected where appropriate.
- "Gadget::setBorderless()" now invalidates rect cache.
- Removed "Gadget::removeGadget()" function (request 1846590).
- "Window::createBorder()" sets border focus correctly.
- Window border gadgets base their colour on the parent's active flag rather than by abusing the focus system and their own active flags.
- GraphicsPort was using SCREEN_WIDTH instead of _bitmapWidth when blitting bitmaps.
- Fonts work with const u16* bitmap data instead of plain u16*.
- Woopsi clears its background correctly when a screen closes.
- Gadgets draw only those regions not obscured by children (previously broken by switch to region caching).
- Gradient cache uses new instead of malloc.
- Removed support for external bitmaps from SuperBitmap.
- Renamed Gadget::getRectClippedToParent to Gadget::getRectClippedToHierarchy.
- Making a gadget invisible makes its children invisible.
- Fixed off-by-one error in Gadget::checkCollision() functions.
- Fixed gadget-space to display-space co-ordinate problem in GraphicsPort clipping routines.
- Removed GraphicsPort::clipXORRect() and replaced with bugfixed alternative.
- Various functions in Gadget class now check isVisible() instead of _flags.visible.
- focus() functions ignore the call unless the gadget is not active.
- GraphicsPort will no longer draw to deleted/invisible gadgets.
- Tidied up ambiguities in Gadget::closeChild().
- Gadget::closeChild() function setting the active gadget pointer to top gadget in the stack, but the top gadget could have been the gadget being closed.
- Fixed same problem in Gadget::hideChild().
- New Features:
- Added static system font routines to Woopsi class.
- Gadgets automatically use system font if no font specified (bug 1846003).
- Added "floodFill()" function to SuperBitmap (request 1816931).
- Added "drawBitmap()" function to SuperBitmap (request 1813792).
- Added "newBitmapGraphicsPort()" function to SuperBitmap.
- Added "setFont()" function to Text.
- Split Screen class into ScreenBase, AmigaScreen and SimpleScreen classes.
- Added "permeable" flag to gadgets - if set to "true", child gadgets can be dragged to exceed the borders of their parents (ie. windows can be dragged off-screen).
- Gadget::getRectClippedToHierarchy clips to entire ancestor tree.
- Gadget::moveTo() enforces permeability of parent gadgets.
- Gadget::resize() enforces permeability of parent gadgets.
- Window::resize() enforces permeability of parent gadgets.
- Changed VBL events so gadgets must register with Woopsi to receive them (request 1847147).
- Centralised gadget deletion queue handling into static Woopsi functions.
- Added Gadget::hideChild() function.
- Added VBL counting and static getVBLCount() function to Woopsi class (request 1847147).
- Split Window class into WindowBase, AmigaWindow and SimpleWindow classes.
- Added text output methods with colour parameter to GraphicsPort and SuperBitmap classes.
.