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

Release notes:

– Fixes:
– Removed framebuffer-hitting code from DimmedScreen gadget and replaced with call to GraphicsPort::dim().
– ListBox removes itself from its ListData object when deleted.
– Keyboard example shows cursor.
– Moved DimmedScreen into woopsi folder as an official gadget.
– CycleButton::getPreferredDimensions() populates rect with correct values.
– Const fixed Gadget::getRefcon().
– Gadget::disable() and Gadget::enable() redraw the gadget by default.
– Fixed clipRectToHierarchy() bug introduced in switch to non-recursive function in last release.
– RadioButtonGroup redraws when resized.
– RadioButtonGroup returns correct dimensions from getPreferredDimensions().
– Updated copyright notice in defines.h.
– Bitmap::getPixel() works correctly for large bitmaps.
– Bitmap::drawBitmap() flushes mem correctly for DMA copy.
– Gadget::show() clears rect cache of sibling gadgets with a lower z-index to ensure that they do not draw over the top of the newly-shown gadget.
– A disabled gadget that overlaps another now intercepts clicks correctly, no longer allowing them to fall through to the gadget below.

– New Features:
– TextBox and MultiLineTextBox cursor moves when d-pad left/right are pressed and gadget has focus.
– Added tests folder:
– CycleButton test;
– RadioButtonGroup test.
– Added BinaryFile class to bonus folder.
– Added BitmapIO class to bonus folder – load/save BMP files using libfat.
– Added BitmapLoader example.
– Added SuperBitmap::drawBitmap() overload to handle Bitmap objects.

Google Code Page: http://sourceforge.net/projects/woopsi/

Thanks to http://www.nintendomax.com/index.php?topic_id=10741 for the news.