MagicMenu 2.4 (beta) ==================== - Improved overall stability under CyberGraphX; the menu rendering code was actually peeking Screen->BitMap instead of Screen->RastPort.BitMap, which among other things could screw up rendering in deep display modes. Menu rendering now works consistently in display depths beyond 8 bit. - Removed references to SetABPenDrMd() where they were in the wrong place. - The code that sends the IntuiMessage should be less timing critical and simpler now. It fires off the message and starts to wait for a response if necessary rather than allocating timer requests, message ports, etc. on the spot and then jumping into action. - Removed the routine that complains about timed out IntuiMessages. It's nice to know that something went wrong, but not that helpful if you cannot do anything about it. - Since IntuiMessage processing works differently now, MagicMenu now checks for pending, unreplied messages. - The routine that displays the menu and handles the IDCMP_MENUVERIFY case should be better protected against Intuition state changes and stale pointers. There is still a catch in that the Window to receive the menu event may close or dispose of its menu strip before the event arrives. But actually, Intuition protects itself against such eventualities, anyway. - For a Window without a UserPort, MagicMenu could lose memory. This has been fixed. - When an IDCMP_MENUVERIFY message times out, the window to cancel it now properly receives its IDCMP_MOUSEBUTTONS/MENUUP and IDCMP_MENUPICK/MENUNULL messages (as per the RKMs). When menu rendering is finished the other inactive IDCMP_MENUVERIFY windows on the screen now receive the proper IDCMP_MOUSEBUTTONS/MENUUP messages. - Changed the way BOOPSI images in menus are handled. MagicMenu no longer tries to remap them as if they were BitMap images. Right now it turns them into BitMap images and then remaps them. - Redid the image remapping code. It no longer fiddles with the raw BitMap data but uses the Blitter. - Added a patch for ObtainGIRPort() which should make all the SafeGIRPort patches redundant that existed just in support of MagicMenu. The patch checks if the screen it should work upon is currently locked by MagicMenu. If so, ObtainGIRPort() will return NULL. This is a little dangerous since some built-in Intuition classes do not protect themselves against ObtainGIRPort() returning NULL. I can't make the patch tell Intuition to wait until the screen is ready again either, as this would eventually deadlock Intuition. - Changed the new 3D look text highlight colour to be more consistent with the way gadget text highlighting works. - MagicMenu no longer detaches from the Shell it was started from. If you need such a feature, use "run >nil: MagicMenu". - MagicMenu now works with Final Writer. Final Writer calls Clear/ResetMenuStrip whilst in MENUVERIFY state. Previously, MagicMenu did not allow this to happen, causing the verify message to time out. - The phony IntuiMessages are now ExtIntuiMessages with a NULL tablet data pointer and proper time stamp information. MagicMenu 2.5 (beta) ==================== - The ObtainGIRPort() patch now handles the NULL parameter case gracefully. Some BOOPSI gadget dispatchers actually end up invoking the draw method in the OM_NEW case with the GInfo pointer not yet initialized. MagicMenu 2.6 (beta) ==================== - The new 3D colour mode could screw up the screen colour palette. The code did not check for pen allocation failures and, since the pen variables were unsigned, the deallocation code would end up freeing the same pen over and over again. - Changed the commodities filter setup code. All the initializations are now done at program startup time. MagicMenu enables the filter later instead of building the filter when the menu comes up. - Changed the way bevel boxes are rendered. Instead of calling Move..Draw..Draw over and over again it now uses RectFill() where possible. For vertical and horizontal lines this is actually faster than calling Move/Draw. - Made small visual changes to the menu box and title bar rendering in new 3D look mode. - With the non-blocking option enabled, the new 3D look menus now sport drop shadows. - In non-blocking mode MagicMenu no longer uses SuperBitMap windows. - Removed the "demo" menu from the prefs program. - Integrated Mario's new imagery, including the new colour map that goes with it.