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

Release notes:

– Fixes:
– ListBox draws correctly when dragged (clipping problem from 0.41).
– Multiple fixes to the PackedFont set of classes.
– bmp2font checks the default Windows location for grit.
– bmp2font adds fonts to the WoopsiUI namespace.
– bmp2font follows #ifdef/#endif guard style.
– bmp2font uses more appropriate casing for filenames, etc.
– CycleButton redraws correctly when released if it contains no options.
– Label and subclasses recalculate their text position and redraw when their fonts are changed.
– TextBox does not attempt to move cursor when clicked if it contains no text.
– TextBox cursor moves correctly when clicked if a PackedFont font is used.
– Template project no longer references Gadget::Rect.
– MultiLineTextBox redraws and adjusts text position when font is changed.
– ListBox does not attempt to draw item -1 in list.
– PackedFontBase::isCharBlank() returns the correct value.
– Renamed DefaultStyle class to GadgetStyle.
– Instance of GadgetStyle created at Woopsi startup instead of using static properties of DefaultStyle class.
– Removed systemFont global; relying on defaultGadgetStyle instead.
– Removed tinyFont global; Debug class now creates its own instance.
– TinyFont follows class pattern used by Jeff’s PackedFonts.
– Graphics::floodFill() no longer gets stuck in an infinite loop.
– Moved logos out of demo data folder and into new logos folder in bmp.
– Removed unused bitmaps from demo.
– Added missing FileListBox class.
– ScrollbarHorizontal passes font object (via style) to Gadget constructor correctly.
– BitmapWrapper::getData(x, y) no longer causes a compiler warning.
– Removed PAGfx binary from demo.
– Removed zombie.c file from demo and replaced with bmp2bitmap-generated class.
– Removed bittest files from demo and replaced with bmp2bitmap-generated classes.
– Removed all_gfx file from demo.
– Uses stack instead of heap for converting chars to strings.

– New Features:
– Added packedfonts example.
– Added dozens of packed fonts.
– Replaced font pointer in gadget constructors with a pointer to a GadgetStyle object.
– Changed default font to NewTopaz.
– Added old system font under the name Topaz using the same class pattern as the TinyFont.
– Added defaultstyle example.
– Built with devkitARM r27 and libnds 1.4.0.
– Replaced FontBitPacker with bmp2font, a .NET app that can convert a BMP to any of Woopsi’s 4 font formats.
– Added bmp2bitmap, a .NET app that will convert a BMP to a Woopsi BitmapWrapper class.
– Added font2bmp, a .NET app that will produce a BMP from a Windows font.
– Added font2font, a .NET app that will convert a Windows font directly to a Woopsi font class.
– Added new GadgetEventHandlerList class and moved event raising code into it from the Gadget class.
– Duplicate gadget event handlers cannot be added to a gadget.
– Added build and deploy batch files for libwoopsi.
– Tests all build against libwoopsi instead of the raw Woopsi source.
– Most examples build against libwoopsi instead of the raw Woopsi source.