Short: Pop-up, sticky and transparent menus Author: Martin Korndoerfer, Olaf Barthel, Stephan Rupprecht, Uploader: amikit gmail com (Jan Zahurancik), Jens Langner, Jan Zahurancik Type: util/wb Version: 3.0 Requires: muimaster.library 19 (MUI 3.8) or newer, for the preferences editor only Architecture: m68k-amigaos >= 2.0.4 Distribution: Aminet MagicMenu 3.0 is a new and improved version of the utility that has been replacing Intuition's menus since 1993. Every setting that decides how a menu looks can now be different for pull-down and pop-up menus. The preferences editor has been rewritten in MUI. It is far easier to read than the old one, and it greys out whatever cannot apply. Drop shadows are adjustable at last. Most importantly, this release fixes the transparency bug that has been leaving holes in transparent menus since 1999, along with many others. The transparency and backdrop rendering also got measurably faster. Some thirty more crashes, hangs and leaks were found and fixed. The full changelog is in ChangeLog. WHAT IS NEW IN 3.0 EACH MENU TYPE HAS ITS OWN SETTINGS Pull-down and pop-up menus each get their own column, so the two can be styled completely independently: menu style, recessed look, menu control, opening delay, selection frame, separator bars, submenu marker, centering, and drop shadows down to their distance and intensity. The old three-way Type cycle became two enable checkmarks heading those columns; with both ticked the pointer position picks the menu, exactly as before. Existing configurations map over unchanged. A MUI PREFERENCES EDITOR The preferences editor has been rewritten from the ground up in MUI, with the emphasis on clarity. Each setting is a row, with the pull-down and pop- up columns side by side, so you can see at a glance where the two menu types differ. Every gadget carries bubble help that explains what it does. Just as important, anything that cannot take effect is greyed out while you work. Switch a menu type off and its whole column goes with it. Pick a look that does not use the configurable pens and the colour settings grey out. Turn drop shadows off and the distance and intensity sliders follow. You are never left wondering whether the setting you just changed is doing anything. MUI 3.8 is enough: on real hardware it is much lighter than MUI 5, so that is what most people run there, and MagicMenu respects it. The 256-color banner is built into the editor. It only shows on screens with 256 colors or more. If you want to use your own banner, put a magicmenuprefs.pic next to MagicMenuPrefs. The image file can be any format your datatypes support, and MagicMenuPrefs will always display it - regardless of screen depth. If the format is not recognized, the built-in banner comes back. Three things left the configuration tabs altogether. Non-blocking mode and the Verify and Fix patches switches moved into the editor's own Settings menu, where they belong - none of them is a setting for how a menu looks. Create icons is gone as a gadget and is controlled purely by the CREATEICONS tooltype now, the way every other preferences editor on the system does it. ADJUSTABLE DROP SHADOWS The shadow is no longer take it or leave it. How far it extends is a slider, from 1 to 10 pixels. How dark it is, is a second one, from 1 to 100 per cent - that one works on truecolor screens, where the shadow darkens the real pixels underneath; on a palette screen a dedicated Shadow pen does the job instead. Both sliders are per menu type, like everything else on that tab. The old "floats higher" effect is gone with them. MagicMenu used to deepen the shadow as the menus nested, so a menu bar strip, its menu and its submenu cast 2, 5 and 7 pixels whatever you had asked for. Every box now casts the shadow you chose, and how far it reaches and how dark it is are both yours to set. TRANSPARENCY BUG FROM 1999 FIXED Transparency arrived in MagicMenu 2.26 in 1999, and it carried a bug from the very start: open a transparent menu, move along to another title, and the new menu came up with blank patches in its background - exactly where the previous one had been. MagicMenu took its picture of the screen before the applications underneath had a chance to paint back over the hole the closed menu left behind. After more than a quarter of a century of happy and undisturbed service, that bug has been sent into retirement. :) ONE CYCLE FOR THE MENU BACKGROUND Solid Color, Transparent, Image or Transparent Image, per menu type. Those four are the only things the renderer has ever been able to do, but three separate switches expressed them between them, and could also express combinations that did nothing - which is why "Allow transparency" could not be switched off while a backdrop was loaded. AN OPENING DELAY YOU CAN SET From Off through 100 to 1000 milliseconds, separately for each menu type, instead of a single on/off switch. The two are worth setting apart because they are swept differently: a pull-down bar is crossed horizontally and every direction of travel counts, while a pop-up strip is a vertical list where only vertical travel reads as being on the way somewhere. STABILITY These are the fixes that matter: - A Forbid() was left permanently in force, so multitasking never resumed. - The menu item renderer could enter an endless loop. - Memory was taken from one allocator and handed back to another, and static images were freed into the memory pool. - Teardown ordering could park foreign tasks on semaphores that were being destroyed underneath them. - The colour remap tables were read out of bounds. - A catalog id shift would have mistranslated 67 strings for every non- English user who still had a 2.x catalog installed. - The preferences window ignored the screen it was told to open on, which also made the PUBSCREEN tooltype inert. - The opening delay applied only to the first box of a quiet stretch. - Drop shadows were drawn at half the configured intensity at distance 1. - The blocking-mode renderer ignored the Shadow pen entirely. - MMPORT read past the end of a 2.x peer's structure. - A green colour component was clamped against blue's bound. - The whole multicolour look was lost when the shadow pen alone could not be allocated. - A dozen controls were greyed out while still in use, or editable while having no effect. REQUIREMENTS - AmigaOS 2.04 or newer. The multicolor 3D look and the editor's color controls need 3.0. - MUI 3.8 or newer for the preferences editor (muimaster.library 19+; MUI 5 is a free download from https://muidev.de). - 64 colours on the editor's screen, or its colour half is simply absent. Tested on AmiKit: AmigaOS 3.x, 68020, 32-bit truecolor RTG, no crashes. AGA, OCS/ECS, plain 68000 and AmigaOS 2.x are untested - reports welcome: https://github.com/AmiKit/MagicMenu/issues BUILDING Cross-build on Linux or WSL: make (vbcc, NDK 3.9, MUI 5 SDK; see the header of the Makefile for the expected toolchain layout). The commodity alone - make MagicMenu - needs no MUI SDK. The rest of the release is built on the host, and each step wants a tool of its own: make catalogs needs awk and a host C compiler, make readme needs python3, and make archive needs jlha from jlha-utils. The lha in most distributions today is Lhasa, which only extracts, and which drops non-ASCII file names when it does. make checkcatalogs verifies the built catalogs against the generated header and needs python3. make gccwarn runs a -Wall -Wextra pass with Bebbo's amiga-gcc as a second opinion - it compiles, never links, and writes no object. GCC is deliberately not the build compiler: a GCC/libnix build of the commodity crashed at boot every time, inside the libnix startup before main(), while the identical source built with vbcc runs. THANKS MagicMenu is Martin Korndörfer's program. He wrote it between 1993 and 1997, and Olaf 'Olsen' Barthel, Stephan Rupprecht and Jens 'Damato' Langner carried it from there to 2.35. Version 3.0 exists only because they put the sources under the GPL and left them in a state anyone could pick up. The artwork is Mario 'padrino' Cattaneo's, and it is still what gives the multicolour look its character. MagicMenu up to 2.35 (1993-2010) by Martin Korndörfer, Olaf Barthel, Stephan Rupprecht and Jens Langner. Their work, its full history and the original release archives are at https://github.com/jens-maus/magicmenu - this repository begins at 3.0. MagicMenu 3.0 (2026) by Jan Zahurancik / AmiKit, https://www.amikit.amiga.sk The DualPNG icons are by Ken E. Lester, Jr. (the original icons are kept beside them for anyone who prefers the older look). Released under the GNU General Public License, version 2 or later. See LICENSE. The complete source for this release is at https://github.com/AmiKit/MagicMenu - you are entitled to the source of any binary you receive.