The Woopsi library is now considered "complete" and future updates will focus on bug fixes only.
Changelog:

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.
Download
Source-here