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


V0.25 (20071105)

– Fixes:
– Added vector to store hidden gadgets, reducing the complexity of maintaining gadget lists and focus.
– Removed all screen dimension magic numbers and replaced with defines.
– Tidied up a lot of the code.
– Gadget deletion queue now handles solely in the VBL events.
– Optimised TextWriter by preventing it from drawing empty glyphs.
– Changed TextWriter into a static class.
– Optimised TextViewer so that it uses much less memory.
– Text font and glyph font now sent around hierarchy instead of each gadget creating their own font.
– Improved Font class.
– Removed 8-bit code from Bitmap class.
– General refactoring and code tidying.
– Made EventHandler methods virtual instead of pure virtual.
– Split gadget events into “raiseXEvent()” and “x()” functions.
– Clicking a gadget automatically notifies its parent that it is the new clicked gadget.
– Moved dirty child redraw function into gadget class.
– Added horizontal clipping to rect splitting functions.
– Fixed SuperBitmap border.
– Relevant gadget methods are now virtual for subclassing.
– Removed all unnecessary all_gfx includes.

– New features:
– Added non-draggable screens and windows.
– Added show/hide gadget functionality.
– Added ability to hide a window instead of closing it when the close button is clicked.
– Added closed/hidden/shown events.
– Added monochrome output to Font class and definable text colour.
– Added drawText() function to SuperBitmap class.
– Added window depth button.
– Added enable/disable gadget.
– Started work on alert requester.
– Moved text data manipulation out of TextViewer into a separate class.
– Added Gadget::moveTo method.
– Added Gadget::resize method.
– Added resize event.
– Added move event.
– Added value change event.
– Added window resizing (API only).
– Added radio buttons.
– Added radio button groups.
– Added “clicked” glyphs for screen and window depth buttons.
– Most gadget action methods (click(), moveTo(), etc) return bools to indicate success or failure.
– Added enabled/disabled events.
– Added checkboxes.
– Added NDS screen flipping and support for top NDS screen.
– Added screen flipping gadget.
– Updated screens to swap to front when clicked.
– Added a variety of gadget depth manipulation functions.
– Split Woopsi library code into separate directory for ease of integration in other projects.