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

Release notes:

Fixes:
– MultiLineTextBox jumps to bottom of text correctly when required to do so.
– MultiLineTextBox extensively refactored.
– MultiLineTextBox top-aligns when text exceeds size of gadget.
– MultiLineTextBox alignment options all work.
– Removed ScrollingPanel::clipToClientRect().
– Made Woopsi::startup() pure virtual; no longer needs to be called as the first instruction in user override.
– Woopsi::startup() and Woopsi::shutdown() are protected, not public.
– Deleted helloworld_alternative example.
– Switched various string methods from using u32 to s32 types.

New Features:
– Cursor jumps to click point when MultiLineTextBox is clicked.
– D-pad up/down move cursor up/down in MultiLineTextBox.
– MultiLineTextBox shows keyboard when double-clicked.
– MultiLineTextBox scrolls to follow cursor when moved with the d-pad.
– TextBox and MultiLineTextBox keyboard popup can be enabled/disabled using enableKeyboardPopup() and disableKeyboardPopup().
– Built with devkitARM r28.
– Added TextBoxBase interface to ensure that all TextBox-style classes implement the same methods.
– Added SliderBase interface to ensure that all Slider-style classes implement the same methods.
– Added ListBoxBase interface to ensure that all ListBox-style classes implement the same methods.
– Progress bar optionally shows percentage completed.

http://forum.gbadev.org/viewtopic.php?t=14332