Woopsi v0.25
Ant512 is back again, with the latest release of the Woopsi GUI developer’s kit for the DS. This C++ coded kit based on the AmigaOS UI will give other DS coders a convenient template for creating UIs for their own homebrew projects.
This latest release features a general code cleanup, as well the addition of non-draggable screens and windows. Ant512’s changelog details for Woopsi v0.25 can be accessed via the Full Article.
Download: Woopsi v0.25 source
Download: Woopsi v0.25 demo
DS developer Ant512 is sending out word that the Woopsi developer’s kit has just been updated to version 0.25. If you’re a first-time reader wondering what this is, Woopsi is a GUI development library patterned after the AmigaOS windowing system. Ant512 built Woopsi to give fellow DS coders a means of creating their own user interface (UI) for their homebrew projects. As for the changelog since version 0.24 (the previous release):
- 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.
Keep in mind that to get Woopsi running, you will need to have either a DS handheld, or a DS emulator on your PC. You’ll also need devKitPro, PALib and an IDE to compile your projects. Further details (such as author and licensing details) are available in the file bundle’s readme.
Download: Woopsi 0.25 source
Download: Woopsi 0.25 demo