Another release of Woopsi for those who aren’t syncing with the SVN repositories. All the latest changes are included, plus the XCode version is now available as a separate archive. All available from the SourceForge page.
There are a few new changes to the code. The ScreenFlipButton and ScreenDepthButton gadgets (and skinned versions) now raise release events instead of calling functions within their parents, which should help make subclassing easier. This makes the ScreenFlipButton and ScreenDepthButton classes identical in everything but name, so I’m also going to see if it’s worth scrapping those gadgets and any similar buttons and merge them into a single GlyphButton class.
In order to achieve this event-based relationship between gadgets, the Gadget class inherits from EventHandler. Any gadget can now be set as the event handler for any other. In the case of the flip/depth swap decoration gadgets, their containing AmigaScreen or SkinnedScreen gadget is set as the event handler when the decorations are created. Their events are handled in the XXXScreen::handleEvent() function.
I’m going to work out where I can implement event handling in the rest of the code (ie. window close button, etc) and tidy those things up too.