DS - DSi Homebrew Downloads
| Download im Detail |
|
Woopsi v.0.99.2 beta |
||
![]() |
||
|
||
| Bitte bewerten Sie den Download angemessen! |
Woopsi ist eine grafische Entwicklerbibliothek für den DS. Mit ihr kann man Menus und OnScreen-Fenster in Homebrews integrieren. Wer sich für den Developmentbereich des DS interessiert, sollte zuerst ein Blick hierauf werfen.

Changelog:
V0.99.2 beta
Fixes:
- Replaced clipping code in Gadget::clipRectToHierarchy() with call to new
Rect functions.
- PackedFont16::renderChar() aborts correctly if there is nothing to render
(Lakedaemon).
- Bitmap::getData(x, y) no longer declared inline (Lakedaemon).
- Renamed gunsuh15.bmp and gunsuhche15.bmp to gungsuh15.bmp and
gungsuhche15.bmp respectively.
- Deleted CourierMono as it was an exact duplicate of Courier.
- Converted most fonts to PackedFont1.
- Converted GlyphFont to PackedFont16 (manually altered class to force
fixed-width).
- Removed Font and MonoFont classes (PackedFont classes are faster and more
efficient).
- bmp2font upgraded to latest version - no longer creates gigantic arrays in
PackedFont1 fonts; removed support for Font and MonoFont classes.
New Features:
- Added getPath() to FileRequester and FileListBox.
- Converted Rect struct to class.
- Added Gadget::getRelativeX() and getRelativeY().
- Replaced x, y, width and height members of Gadget class with a Rect.
V0.99.1 beta
This version fixes bugs in the slider and scrollbar gadgets.
Fixes:
- Rewrote SliderVertical and SliderHorizontal again to improve accuracy.
- Removed jumpGrip() from all slider gagdets.
- Added setValueWithBitshift() to all slider gadgets.
- Added getMinimumStep() to SliderVertical and SliderHorizontal.
- Removed getValuesPerPixel() from all slider gadgets.
This version has had a significant version bump because it is considered complete. I'm holding off from releasing version 1.0 partly to ensure that the documentation is done and partly to allow time for any bug reports.
Changes in this version include some minor cosmetic improvements to the ProgressBar, bugfixes to the slider gadgets, and some more gadget test projects. Full changelog is below. Additionally, I'll be uploading some early documentation to my blog soon:
V0.99
- Fixes:
- ProgressBar text greyed out when disabled.
- SliderVertical and SliderHorizontal ignore double clicks by default.
- SliderVertical and SliderHorizontal only fire value changed event if value
has really changed.
- SliderVertical and SliderHorizontal getValue() methods are considerably
more efficient.
- Added libfreetype.a file to libs/libfreetype/lib folder.
- New features:
- Added progressbar test.
- Added slidervertical test.
- Added sliderhorizontal test.
- Added scrollbarvertical test.
- Added scrollbarhorizontal test.
- Added superbitmap test.
- Bumped version number to indicate feature completeness.
v0.44
Fixes:
- Moved fatInitDefault() SDL function into woopsifuncs.cpp (Quirky).
- ScrollingPanel::raiseScrollEvent() only fires if events are enabled.
- Gadget::raisesEvents() retrieves its value from the GadgetEventHandlerList object.
- Gadget::setRaisesEvents() alters the GadgetEventHandlerList object.
- Removed the raisesEvents flag from the Gadget class.
- Bmp2Font produces working Font classes.
- Deleted badly-converted fonts:
- Latha;
- Lucida10;
- Roman 10;
- Trebuchet8.
- FileRequester no longer has transparent regions.
- FileRequester sorts correctly.
- FileRequester does not attempt to draw when drawing is disabled.
- FilePath uses WoopsiString::lastIndexOf() to change to parse path string.
- Dragging a screen that isn't the top screen so that it is not visible no longer causes a crash.
- Removed glyphs from NewTopaz and Topaz fonts.
- Changed NewTopaz font to PackedFont1 from PackedFont16.
- Changed Topaz font to MonoFont from Font.
- Fixed memory leak when enumerating directories in FileListBox.
- FileListBox shows dummy file list when in SDL mode.
- Graphical corruption in GraphicsPort::clipScroll() fixed.
- Fixed FileRequester layout.
- Replaced magic number double click time with define in woopsifuncs.cpp.
- TestPanel class in scrolltest example draws its border correctly.
- Fixed a crash in GraphicsPort::drawText() when trying to draw text outside the clipRect with a PackedFont1 font; should provide a minor speedup.
- ScrollingPanel draws its border correctly.
- Removed Text::getLinePointer().
- MultiLineTextBox::drawCursor() uses a StringIterator to locate the cursor position.
- MultiLineTextBox::drawCursor() does not read past the end of the string when the cursor is positioned beyond the string.
- Text::wrap() does not perform an invalid comparison between line index and char index when truncating the line positions array.
- Text::wrap() correctly appends the string end position in all scenarios.
- Text::wrap() always assumes text height is at least one row.
- Text::getLineContainingCharIndex() returns the correct value if the character is in the last row.
- WoopsiString::insert() explicitly calls its own setText() and append() methods to prevent the Text class from wrapping twice.
- Added WoopsiString::encodeCodePoint().
- PackedFontBase::isCharBlank() returns correct value if character not present in font (fixes horizontal alignment in MulitLineTextBox).
- Key repeat values stored in defines.h.
- FileListBox does not show "." directory.
- Minor optimisation when building the FileListBox contents.
- Split Label::calculateTextPosition() split into horizontal and vertical methods.
- TextBox switches to left-aligned automatically if contents exceeds size of box.
- Fixed memory leak and logic problems when deleting gadgets.
New Features:
- Added FontBase::getCharHeight().
- WoopsiString supports UTF-8 (Lakedaemon).
- Split glyphs into separate GlyphFont.
- GadgetStyle includes a glyph font.
- All gadgets converted to use WoopsiStrings instead of raw chars/char arrays, meaning they support UTF-8.
- Various changes in Text class to support UTF-8.
- Changed parameters to GraphicsUnclipped::drawText() (and subclasses).
- Added StringIterator class, for efficient iteration over a UTF-8 string.
- Removed dependence on WoopsiString::getCharArray().
- Promoted FileRequester gadget from bonus folder to main library.
- libfat enabled by default in test projects and template.
- Added WoopsiString::lastIndexOf().
- Added WoopsiString::subString().
- Added WoopsiString::indexOf().
- TextBox implements key repeats when left or right d-pad is held down; cursor moves repeatedly until end of string reached or d-pad released.
- MultiLineTextBox implements key repeats when left or right d-pad is held down; cursor moves repeatedly until end of string reached or d-pad released.
- Textbox contents scrolls horizontally as cursor is moved.
- Added key repeat event handling to the entire system.
v0.43
- Fixes:
- ListBox draws correctly when dragged (clipping problem from 0.41).
- Multiple fixes to the PackedFont set of classes.
- bmp2font checks the default Windows location for grit.
- bmp2font adds fonts to the WoopsiUI namespace.
- bmp2font follows #ifdef/#endif guard style.
- bmp2font uses more appropriate casing for filenames, etc.
- CycleButton redraws correctly when released if it contains no options.
- Label and subclasses recalculate their text position and redraw when their fonts are changed.
- TextBox does not attempt to move cursor when clicked if it contains no text.
- TextBox cursor moves correctly when clicked if a PackedFont font is used.
- Template project no longer references Gadget::Rect.
- MultiLineTextBox redraws and adjusts text position when font is changed.
- ListBox does not attempt to draw item -1 in list.
- PackedFontBase::isCharBlank() returns the correct value.
- Renamed DefaultStyle class to GadgetStyle.
- Instance of GadgetStyle created at Woopsi startup instead of using static properties of DefaultStyle class.
- Removed systemFont global; relying on defaultGadgetStyle instead.
- Removed tinyFont global; Debug class now creates its own instance.
- TinyFont follows class pattern used by Jeff's PackedFonts.
- Graphics::floodFill() no longer gets stuck in an infinite loop.
- Moved logos out of demo data folder and into new logos folder in bmp.
- Removed unused bitmaps from demo.
- Added missing FileListBox class.
- ScrollbarHorizontal passes font object (via style) to Gadget constructor correctly.
- BitmapWrapper::getData(x, y) no longer causes a compiler warning.
- Removed PAGfx binary from demo.
- Removed zombie.c file from demo and replaced with bmp2bitmap-generated class.
- Removed bittest files from demo and replaced with bmp2bitmap-generated classes.
- Removed all_gfx file from demo.
- Uses stack instead of heap for converting chars to strings.
- New Features:
- Added packedfonts example.
- Added dozens of packed fonts.
- Replaced font pointer in gadget constructors with a pointer to a GadgetStyle object.
- Changed default font to NewTopaz.
- Added old system font under the name Topaz using the same class pattern as the TinyFont.
- Added defaultstyle example.
- Built with devkitARM r27 and libnds 1.4.0.
- Replaced FontBitPacker with bmp2font, a .NET app that can convert a BMP to any of Woopsi's 4 font formats.
- Added bmp2bitmap, a .NET app that will convert a BMP to a Woopsi BitmapWrapper class.
- Added font2bmp, a .NET app that will produce a BMP from a Windows font.
- Added font2font, a .NET app that will convert a Windows font directly to a Woopsi font class.
- Added new GadgetEventHandlerList class and moved event raising code into it from the Gadget class.
- Duplicate gadget event handlers cannot be added to a gadget.
- Added build and deploy batch files for libwoopsi.
- Tests all build against libwoopsi instead of the raw Woopsi source.
- Most examples build against libwoopsi instead of the raw Woopsi source.
v0.42
- Fixes:
- ListData::swapItems() no longer raises a data changed event.
- ListData::sort() raises a data changed event.
- Woopsi class does not attempt to retrieve system font before it is initialised.
- ListBox canvas height no longer includes extra pixel.
- ListBox raises an action event when double-clicked.
- ListBox ignores double-clicks that occur across multiple items.
- Removed unused Gadget::_doubleClickTime member.
- ListBox redraws every time data changes.
- Double-click only counted as such if the gadget already has focus (ie. must be the same gadget clicked twice).
- ListBox::draw() calculates top and bottom visible options correctly, and does not overwrite options at the top of the list with those from the
bottom.
- ListBox automatically scrolls when items are removed from the ListData object to ensure it does not display past the end of the canvas.
- New Features:
- Split ListData class into ListData and ListDataItem classes for greater flexibility.
- Minor improvements to the ListBox's use of the ListData class.
- Altered ListData::quickSort() and added compareTo() method to ListDataItem to allow custom ordering of ListDataItem subclasses.
- ScrollingBase adds support for specifying planes on which scrolling can occur.
- ScrollingPanel implements ScrollingBase's allow/disallow scroll plane features to prevent scrolling on certain planes.
- ListBox does not allow horizontal scrolling.
- Added windowless example project.
- Added Gadget::isDoubleClick() to check for double-clicks.
- Combined various colour members in Gadget class into GadgetColours struct.
- Merged TextWriter into GraphicsXXX classes and removed original class.
- Added FileListDataItem class to store data for file requester.
- FileRequester uses new compareTo() functionality for substantial speed increase and lower memory usage.
- FileRequester displays "Loading..." message whilst directories are enumerated.
- Split ListDataItem into ListDataItem and ListBoxDataItem classes for greater flexibility.
- Split FileRequester into FileListBox and FileRequester classes for greater flexibility.
- CycleButton uses the ListData class to store its data - options can now be selected, removed, sorted, etc.
- ListBox::getPreferredDimensions() bases width on size of text in options.
- ContextMenu used a ListBox to store/view its data.
- ContextMenu includes getPreferredDimensions() method.
- ContextMenu sends ListDataItem objects with event arguments instead of ContextMenuItem objects.
- Deleted ContextMenuItem class.
- Added WoopsiString::copyToCharArray().



