Woopsi

Free and open source Nintendo DS GUI library
Download

Woopsi Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Freeware
  • Price:
  • FREE
  • Publisher Name:
  • Antony Dzeryn
  • Publisher web site:
  • Operating Systems:
  • Mac OS X
  • File Size:
  • 2.2 MB

Woopsi Tags


Woopsi Description

Free and open source Nintendo DS GUI library Woopsi is a windowing system for the Nintendo DS, written in C++, that aims to create a simple windowing GUI system that other programmers can use for their applications, decreasing the tedious amount of GUI code that people have to write.The system itself is loosely based on the Commodore Amiga’s “Intuition” windowing system. Everything in the system is treated as a “gadget” (in the same way that Windows treats everything as a sub-class of a window), everything takes place within a “screen” environment, and the look-and-feel of the system intentionally resembles the old Amiga system. NOTE: Woopsi is licensed and distributed under the terms of the BSD License. Here are some key features of "Woopsi": · Multiple screen support · Skinnable screens and windows · Draggable gadgets, including draggable windows and screens · Borderless gadgets, including borderless windows · Built-in debug console · All gadgets can become modal · Intelligent, optimised gadget drawing and erasing · Event system · Depth sorting · Automatic gadget garbage collection · Object-orientated design for easy integration into other C++ software · Simple API for rapid GUI creation · Simplistic “multitasking” - each window runs simultaneously · Uses 16-bit framebuffer display mode A full set of user interface components: · Text buttons with text alignment functionality · Image buttons · Animated buttons · Radio buttons and radio button groups · Check boxes · Labels · Single-line textboxes with cursor support · Multi-line text boxes with cursor support · Screens · Windows · Gradient backgrounds · SuperBitmap, for persistent drawing and displaying large bitmaps in small gadgets · Scrolling panels, for containing graphics or gadgets within regions that are larger than the parent container · Scroll bars · Slider bars · Context-sensitive menu · List boxes · Progress bars · Requesters · File requesters · Cycle buttons · Keyboard · Calendar Complete API for constructing new gadgets: · Extensible font system that supports · Fixed-width, bit-packed monochrome fonts · Fixed-width, 16-bit colour bitmap fonts · Compressed proportional fonts (monochrome and 16-bit) · Text manipulation, including wrapping functions and width calculation · Animation class with support for variable framerates and standard/pingpong looping GraphicsPort class providing depth-sorted, clipped, hardware-accelerated drawing functions: · Pixel plotting · Optimised horizontal/vertical lines · Bresenham omni-directional lines · Filled and unfilled rectangles · Filled and unfilled circles · Bitmap blitting · Bitmap blitting with transparent colour key · XOR horizontal/vertical lines and pixel plotting · Flood fill · Linked list, dynamic array and hashmap template container classes and iterator classes · Date class Multiple build options: · With/without PALib support · SDL layer to facilitate native compilation on non-DS platforms and aid porting · libwoopsi.a library build Requirements: · SDL · Xcode What's New in This Release: Fixes: · Removed PALib dependency from filerequester example. · FileRequester gadget fixed for devKitARM r24 (Quirky). · ListBox redraws correctly when an option is selected in single selection mode. · Fixed crash in SliderVertical when trying to set value if max and min values are the same (Quirky). · Fixed crash in SliderHorizontal when trying to set value if max and min values are the same. · Fixed FileRequester crash when path has trailing slash (Quirky). · Fixed double-click in SDL (Quirky). · FileRequester fixed for SDL (Quirky). · SDL path fixes (Quirky). · Escape key to quit in SDL mode (Quirky). · WindowBorderTop and SkinnedWindowBorderTop no longer have pointers to freed memory if window title changes (Quirky). · ScreenTitle and SkinnedScreenTitle no longer have pointers to freed memory if screen title changes (Quirky). · Flipping window depth with depth gadget no longer results in corrupted window contents. · Fixed const-correctness of various Text class methods. · SDL framebuffers initialised to black. · More doxygen fixes. · Removed WoopsiArray::begin(). · Removed LinkedList::begin(). · Renamed Gadget::draw() to Gadget::redraw() and removed unnecessary overloads from all classes. · Const correctness fixes in Gadget class. · ScrollingTextbox adjusts scrollbar grip position correctly when first initialised. · Alert box draws XOR rect correctly when released. · Requester draws XOR rect correctly when released. · WoopsiKeyboard no longer adds itself as the decoration event handler twice; fixes XOR rect drawing when clicked/released. New Features: · Added Gadget::getChild() and Gadget::getChildCount() (for leonelhs). · Added context menu example (for leonelhs). · ListData class raises events to ListDataEventHandler objects. · ListBox listens for ListData events. · Added base template class for event args passing. Refactored gadget event system: · Replaced EventArgs struct with GadgetEventArgs class. · Renamed EventHandler to GadgetEventHandler. · Gadgets can now have multiple event handlers. · Replaced handleEvent() method with multiple methods. · Removed EventType enum from GadgetEventHandler. · ListData events passed by references instead of pointers. · WoopsiKeyboard includes a set of new events: Press, Release, Repeat · WoopsiKeyboard no longer stores the last key clicked. WoopsiKeyboard has set of event-related classes: · KeyboardEventHandler · KeyboardEventArgs Refactored context menu event system: · Added ContextMenuEventArgs class; · Removed "_value" from ContextMenu; · Removed "getContextMenuValue()" from Woopsi; · Selected context menu item now accessible via ContextMenuEventArgs::getItem(). · Slider grip automatically resizes; no need to call resizeGrip(). · End point rects now cached (sans child rects) for extra speed. · Gadget rect caching moved into separate RectCache class. · RectCache::removeOverlappedRects made non-recursive. · Gadget::clipRectToHierarchy made non-recursive. · Added GraphicsPort::copy() to copy regions of the framebuffer around. · Screen dragging code improved; uses new GraphicsPort::copy() method. · Added GraphicsPort::scroll() to scroll regions of gadgets. · Removed scrolling code from ScrollingPanel and rely on new scroll() method instead. · Added GraphicsPort::dim() function to add DimmedScreen functionality to all gadgets.


Woopsi Related Software