Woopsi is a Nintendo DS GUI library for rapidly creating user interfaces for homebrew software. Modelled after the AmigaOS windowing system.

Release notes:

Woopsi 0.99.3 is now available:

This release fixes a number of bugs. Some of the code has been tidied up. The only change that could have an impact on user code is the removal of drawHorizLine(), drawVertLine(), drawCircle() and drawFilledCircle() from the GraphicsPort class. The drawLine(), drawEllipse() and drawFilledEllipse() methods will now automatically call the optimised form is it is available.

– WoopsiString::compareTo() no longer inlined (fixes SF bug 3017420).
– Moved unused FixedWidthFontBase class into extras directory.
– Moved putSDLPixel() and getSDLPixel() into FrameBuffer class from woopsifuncs files.
– Added copy() to all bitmap classes.
– Replaced call to woopsiDmaCopy() in Graphics::copy() with call to copy() method of bitmap class.
– Graphics::drawEllipse() automatically calls drawCircle() if both radii are equal.
– Graphics::drawFilledEllipse() automatically calls drawFilledCircle() if both radii are the same.
– Graphics::drawCircle() and drawFilledCircle() are protected.
– Graphics::drawLine() automatically calls drawVertLine() or drawHorizLine() if lines can be optimised.
– Graphics::drawVertLine() and drawHorizLine() are protected.
– Removed GraphicsPort::drawCircle(), drawFilledCircle(), drawHorizLine() and drawVertLine().
– Fixed TinyFont (broken in last release).
– Moved woopsiRGB() macro from woopsifuncs.h to graphics.h.
– Moved woopsiDmaFill() and woopsiDmaCopy() into new dmafuncs files.
– PackedFont1 clips correctly.
– Gadget collision detection uses routines in Rect class.
– All GraphicsPort routines use Rect class.
– Rect::hasDimensions() returns false for negative sizes.
– Rect::getIntersect() and getAddition() work correctly for negative sizes.
– Removed Rect::fromDimensions().
– Rect::fromCoordinates returns a rect rather than a pointer to a rect.
– Tidied up SDL pad updating in woopsifuncs.c.
– Removed woopsiLidClosed() from woopsifuncs.c.
– Added dmafuncs.h to woopsiheaders.h.

New Features:
– Added Rect::contains().
– Added Rect::copyTo().

Discussion: http://forum.gbadev.org/viewtopic.php?t=14332&postdays=0&postorder=asc&start=75