Woopsi 1.2 is out now!
http://woopsi.org
There are more changes in this release than I expected. Most of them are bug fixes. There's a fair amount of refactoring, and there are a few new features. Note that this release includes breaking changes, but they aren't difficult to fix.
The full changelog follows...
Fixes:
- Screen flipping/ordering does not occur if only one screen is visible.
- Removed ability to set font draw colour/monochrome from font classes; replaced with explicit "colour" parameter to all draw methods.
- Removed height member from FontBase and transplanted all methods to PackedFontBase, making FontBase data free.
- Minor tidying in gadget.cpp.
- Removed width and height members from BitmapBase and transplanted to BitmapWrapper, FrameBuffer and Bitmap.
- Removed constructor from FontBase.
- Gadget::checkCollision(Gadget*) will ignore collisions with hidden gadgets.
- Gadget::checkCollision(Gadget*) now accepts a const Gadget*.
- Replaced Gadget::swapGadgetDepth() with Gadget::changeGadgetDepth().
- Rewrote Gadget::swapDepth() to be more intelligent.
- The index to which Gadget::swapDepth() moves the gadget is now determined by swapDepth() instead of the parent's swapGadgetDepth() method.
- Clicking the depth button in an AmigaWindow no longer results in graphical corruption.
- Removed Screen::swapGadgetDepth().
- Removed Woopsi::swapGadgetDepth().
- Minor tidying and optimisations.
- Gadget::_decorationCount is an s32 instead of a u8.
- Fixed array index confusion in RectCache::markRectDamaged().
- Fixed bugs in Graphics::floodFill().
- Stack methods in Graphics class expect a reference to a stack as a parameter instead of pointer.
- Removed static variables from Woopsi class.
- Gadget::checkCollision(Gadget*) shortcuts if a gadget is being compared with itself.
- Removed unused Gadget::GADGET_NO_RAISE_EVENTS flag.
- Removed redundant Woopsi::goModal() method.
- Replaced AmigaScreen-specific flags with extra constructor parameters.
- Replaced AmigaWindow-specific flags with extra constructor parameters.
- Woopsi::handleClick() correctly interprets clicks on children of the context menu.
- Sliders choose a more appropriate size when max value == min value; fixes scrollbars in empty ScrollingListBoxes.
- AmigaScreen doesn't lose focus when depth gadget is clicked if it is not lowered to the bottom of the screen stack (ie. only one screen).
- Removed concept of "close type" from Gadget.
- ListBox:
nClick() won't crash if the area clicked doesn't contain an option.
- Woopsi gadget passes its style object to the two background screens it creates.
- ProgressBar accepts a style object in its constructor.
- Removed GadgetFlagTypes from Gadget class.
- Removed flags from all gadget constructors.
- Changing label borderless state correctly repositions text.
- Gadget::setBorderless() is virtual.
- Label redraws minimal amount when text is changed.
- TextBox redraws minimal amount when cursor moves.
- Gadget::raiseGadgetToTop() parameter name in header file agrees with source file.
- Fixed consistency of Gadget method names:
- moveChildToDeleteQueue() renamed to moveGadgetToDeleteQueue().
- moveChildToShelvedList() renamed to moveGadgetToShelvedList().
- moveShelvedToChildList() renamed to moveShelvedToGadgetList().
- removeChild() renamed to removeGadget().
- getChild() renamed to getGadget().
- getChildCount() renamed to getGadgetCount().
- closeChild() renamed to closeGadget().
- shelveChild() renamed to shelveGadget().
New Features:
- Added Gadget::getHighestCollidingGadgetIndex().
- Added Gadget::getLowestCollidingGadgetIndex().
- Added text member to GadgetColours class - text colour can be defined individually.
- Added Gadget::getTextColor().
- Added Gadget::setTextColour().
- Added Gadget::setDecoration().
- Added Label:: setBorderless ().
- Added Label::markTextRectDamaged().
- Added Bitmap::setDimensions().
- Added Bitmap copy constructor.
Download Here