Woopsi Ant512, a homebrew developer specializing in Nintendo DS applications is trying to break the groundwork for other homebrew coders with the Woopsi homebrew, which aims to create a simple windowing system that programmers can use for their own applications.
Written in C++, Woopsi v0.24 is loosely based on the Commodore Amiga's "Intuition" windowing system. The GUI itself works everything in a "screen" environment, and the look and feel of the system intentionally resembles the old Amiga System.
The developer did not intend the application to be a complete desktop environment, nor was it created as a DS version of GNOME, KDE or Windows Explorer. It was instead developed as a basis for other programmers to build their own window and gadget-based interfaces for the handheld system.
The latest version still has minor issues with the layouting, but Ant512 assures everyone that these minor adjustments will be implemented in later updates. Here's a list of the fixes and new features included with Woopsi v0.24:
Tidied up a lot of the code.
Gadget deletion queue now handled 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.
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 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.
Like it? Share with your friends!
If you got an error while installing Themes, Software or Games, please, read FAQ.