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

Release notes:

Version 0.36 is now out. Changes include more examples, a calendar gadget (and associated date class) and a number of bugfixes and optimisations. Get it from http://www.sourceforge.net/projects/woopsi as always, and check the blog at http://ant.simianzombie.com/blog for more info.

Full changelog:

– s32 used as iterator when working with visible rect cache to prevent permanent loops when large numbers of rects were visible.
– s32 used as child gadget iterator.
– MultiLineTextBox::resize() correctly recalculates the number of visible rows.
– Tidied up MultiLineTextBox::getRowX() and getRowY().
– MultiLineTextBox::getCurrentPage() no longer divides by 0 if there are no visible rows.
– MultiLineTextBox::draw() tidied up; correctly draws when partial line of text is visible.
– MultiLineTextBox vertical alignment options all work correctly.
– MultiLineTextBox scrolls correctly when text is added.
– MultiLineTextBox has cursor support.
– Text::stripTopLines() was not removing all characters.
– Deleted empty fontbase.cpp file.
– Removed unused “bitmap.h” include from “skin.h”.

New Features:
– Moved all classes into WoopsiUI namespace.
– Added Date class.
– Added Calendar gadget.
– Added Calendar example.
– Added Date example.
– Added ProgressBar example.
– Text::wrap() only wraps lines impacted by insert/delete/append operations.
– Replaced unused Bitmap struct with a Bitmap class with drawing routines.
– Replaced SuperBitmap drawing operations with a Bitmap object.