Short: Configure the look of the Amiga GUI! Author: tanti@intercom.it (Massimo Tantignone) Uploader: tanti intercom it (Massimo Tantignone) Type: util/wb Version: 1.5k Requires: AmigaOS 3.0+ Architecture: m68k-amigaos VisualPrefs 1.5k (20.10.2001) by Massimo Tantignone *** This is a minor update for VisualPrefs 1.5 *** *** See below for a list of the latest changes *** VisualPrefs is a patch which allows you to customize with great freedom many aspects of the look of the Amiga GUI. If you do want to see for yourself what VisualPrefs is able to do, just take a look at the preview image supplied with this archive. Using a comfortable preferences editor, you can configure many details like: · different light/dark colors for active or inactive windows edges · the thickness of all four window borders (also with system gadgets) · the height of window/screen titlebars regardless of the font height used · the style of system gadgets · the style of MUI/KingCON/ClassAct/DirOpus/Scalos titlebar gadgets · the exact look of the BOOPSI and GadTools 3D frames · the look of GadTools proportional gadgets · the look of disabled GadTools button, cycle and string gadgets · the position of window titles (centered in dragbar or in whole titlebar) · the fill and text color of inactive window borders · an optional "pop-up" behavior for GadTools cycle gadgets ... and also other interesting things. By the way, VisualPrefs contains all the functionality (and more) of my previous patches Prop3D and CenterTitles. You can configure individually the GUI of each different screen opened by your applications, as well as define a global GUI look. I know there are other programs doing some of this, but none of them has all the features offered by VisualPrefs. This program is shareware. *************************************************************** Note: This patch works even better when used together with the "FullPalette" utility, which is also on Aminet, currently as util/wb/FullPalette22.lha (but the number may change). *************************************************************** Changes from release 1.5j ------------------------- · Fixed a bug which caused KingCON's arrow buttons to be placed incorrectly when the sizing gadget was narrower than 18 pixels. · Fixed a bug which caused GadTools proportional gadgets to ignore changes to their knob's size, if a NULL window pointer was passed when setting their attributes. · Removed a Wipeout hit that happened when opening a MUI public screen which had a screen close gadget. · Removed a Wipeout hit that happened when deallocating bitmaps which were loaded without a mask, if the RTG mode was enabled. · The installation scripts does now offer GlowIcons in addition to the previous icon styles (thanks to Gruber Kristóf for the nice icons). Changes from release 1.5i ------------------------- · By setting a bit in the "Special" environment variable you can now tell VisualPrefs to delay the opening of datatypes.library until it is really needed. This prevents the library from using the wrong language for its strings, which happens when it is opened before IPrefs has had the chance to activate the user's locale preferences. · The "play" (right arrow) gadget in Frogger's window border no longer disappears when the rearrangement code for arrow gadgets is enabled. · Fixed a number of minor problems with the rearrangement code for proportional gadgets in window borders. · Now the rearrangement code for proportional gadgets also affects direct subclasses of "propgclass". · Now VisualPrefs always replaces any already existing "tbiclass" in the system with its own version. This cures problems which could occur on some systems where the disk-based version of the class is loaded at boot before VisualPrefs in the Startup-sequence. · A little aesthetic enhancement: now the inner symbols of the most common right-side titlebar gadgets (depth, zoom, iconify) always have the exact same height, when in Standard or XEN style. · Vertical GadTools proportional gadgets do now get slightly wider knobs, whenever they would end up being too thin for the user to handle easily. · If arrow buttons of GadTools scrollers can't be made square due to lack of space, they are now given the best possible size rather than just falling back to the original size. · Fixed a problem which caused the additional titlebar gadgets of the latest ViNCEd releases to "disappear" whenever the window changed its title. · Window titles in italic style no longer erase the left edge of the window titlebar when there's no close gadget and the left window border is thinner than the usual four pixels. · Fixed an obscure bug in the GUI editor which could trash memory in some (very) rare circumstances. · Included the latest version of select.gadget. Changes from release 1.5h ------------------------- · Fixed a problem in the new OpenWindow() patch code that caused the windows opened by certain (usually old) programs to lack some of their requested attributes. Notably affected were ARQ and DirOpus 4. · Fixed a masking problem that caused window scrollbar borders to be sometimes redrawn with the wrong colors when resizing the window. This affected for example Cinema4D and Wordworth. Changes from release 1.5g ------------------------- · Tested with AmigaOS 3.9; everything seems to be working as before. · Now GadTools button and cycle gadgets correctly show their labels in bold, italic or underlined style when this is requested by their TextAttr. · The frames of GadTools gadgets are now drawn also for gadgets that are placed at negative coordinates and therefore partially off-screen. The fix is actually in "frameiclass", so it could affect similar problems with other kinds of gadgets. · Left-aligned window titles can no longer get corrupted when running Birdie. · Fixed a bug in the area fill code which could cause crashes in some rare circumstances when the "RTG mode" was enabled. · By setting a bit in the "Special" environment variable you can now tell VisualPrefs to adjust the arrow gadgets in right and bottom window borders of all programs, which is normally only possible for KingCON and some SAS/C tools. This works for programs that use "sysiclass" for their arrow images; other programs might or might not be affected by this feature. Only use this if you need to fix certain old programs (like Wordworth) that can't adapt their border gadgets by themselves. Changes from release 1.5f ------------------------- · New version of select.gadget included, which fixes some bugs and adds a couple of nice new effects (see next two items). · Now pop-up menus of cycle gadgets cast a realistic shadow (not dithered) on hicolor and truecolor screens. · Now pop-up menus of cycle gadgets can have a "transparent" background on hicolor and truecolor screens. Note that this can slow down a menu "zoom" effect considerably, since it's a heavy trick to perform. The new option has been added to the "Partial/full width" cycle gadget in the GadTools/Cycle sub-page, due to lack of room to add another gadget. · The background of the "Template options" window of the GUI editor is now properly filled with the Background pen color, rather than with color zero. · The corners of rounded frames are now filled with the Background pen color rather than with color zero. · You can now select bold and/or italic style for window titles. The new options have been added at the bottom of the general options listview (below the preview area) in the GUI editor. · New NOPREVIEW tool type for the GUI editor: using this will prevent the preview from being displayed, thus speeding up operations a little. You can also turn on/off the preview with a new item in the "Settings" menu. This tool type is always read from the icon even when the GUI editor is started from Shell, so you don't have to type it every time. · Since 1000 seemed to be insufficient in most real-life cases, the default value for the MinStackSize environment variable is now 2000. · You no longer need to set the Inactive Fill pen to zero when using Birdie. · Mentioned the TRAP patch for ReAction in the "Notes & hints" section. · Mentioned the name change for the mailing list (from "vpml" to "vp-ml"). · Due to a race condition, in some circumstances the images for window titlebar gadgets on the Workbench screen could end up having inconsistent internal data, with possible consequences ranging from a wrong height to unexpected crashes. Now fixed. · Added a workaround for a masking problem with the V44 amigaguide.datatype: now the navigation buttons should always display their text in the correct color (rather than having it invisible or randomly-colored) no matter what your choice for the Foreground pen is. · The "improved" vector checkmark image showed up as a rectangular block when used in very small checkbox gadgets under Picasso96. Now fixed. Changes from release 1.5e ------------------------- · Slightly enhanced the vector checkmark appearance. · Now even flat cycle symbols (Standard, Future/Flat) appear 3D when the cycle gadget is disabled and the "Text 3D disable" option is on. · Added a workaround to avoid a possible display corruption problem at the reopening of the Workbench screen when using DirOpus and CyberGraphX; VisualPrefs wasn't causing this, but increased its chances to show up. This should be now fixed in most cases; if you still experience it, you can use the new "VisualPrefs/DOpusDelay" environment variable. · Removed a deadlock which could happen when DirOpus reopened its windows after a reopening of the Workbench screen. Changes from release 1.5d ------------------------- · The Workbench 3.5 gauge patch now works correctly with Birdie on hicolor and truecolor screens. · New version of select.gadget included, which fixes a deadlock problem likely to happen when many cycle gadgets were rendered simultaneously by different processes (and in some other rare circumstances). · Now the arrow buttons of GadTools scrollers, even if forced to be square, can never get shorter than 8 pixels. Previously this could happen on screens with an odd pixel aspect ratio, such as 1:2 or 1:4. · The "tbiclass" API now supports a new attribute allowing to create a TBFRAMEIMAGE object best suited to contain actual imagery rather than just text. If specified, the object will have also an inner frame (if the current frame style has one). See the "VP-Developer.doc" file for more details. Changes from release 1.5c ------------------------- · Now VisualPrefs affects the shine/shadow colors of the new Workbench 3.5 level gauge. · Reworked the algorithm adjusting scrollbars in window borders; now it should produce better and more consistent results. · By setting a bit in the "Special" environment variable you can now prevent VisualPrefs from enlarging the window close gadget (which is normally done in order to make it as wide as those at the right side of the titlebar). · GadTools arrow gadgets weren't fully rendered (for safety reasons) if their width or height was smaller than 9 pixels; now the limit is 8 pixels. · The value of the "Special" environment variable can now be specified also in hexadecimal format (by adding a leading '0x'). · Added a workaround for a bitplane mask problem which caused cycle gadgets to have their appearance corrupted during window refresh in the OS 3.5 "Information..." panel, if the cycle gadget pop-up patch was on. · Fixed a bug which caused XEN arrows in window borders to be drawn in the wrong colors on CyberGraphX hicolor and truecolor screens. This change should also fix any known problems with XEN arrows in WinUAE, although I couldn't test it. · Added a workaround for a bug in CyberGraphX with caused MX (radio button) frames to be drawn with black corners on hicolor and truecolor screens. · To move the GUI editor window to a screen which is set as "Ignore", now you have to double-click on the screen name in the screen selection page; the "Ok" button in this case behaves now like the "Cancel" button. This shold be more intuitive than the old system, since you normally don't want to visit an ignored screen. · If you set a screen to "Ignore", now the GUI editor considers it as visited even if it actually wasn't yet, thus allowing you to save its settings. This way you no longer have to visit a screen which isn't already in the preferences file, if all you really want is just to ignore it. · Multiple selection in the GUI editor was only working within the "Global" menu. Now it works with all menus. Changes from release 1.5b ------------------------- · VisualPrefs can now change the look of the ReAction iconify gadget. · Now the screen depth gadget on screens ignored by VisualPrefs works again even with the "Bound hit box" option turned on. · When using a custom bitmap for DirOpus "padlock" images, the "active selected" image was used even for the "inactive selected" state. Now fixed. · Fixed a problem which prevented custom bitmaps to work if the Picasso96 or OS 3.5 picture.datatype was used on CyberGraphX systems. A nice side-effect of this is that now VisualPrefs can always load bitmaps in V43 mode and therefore display truecolor images as they are meant to be, if the screen is deep enough. · Now titlebar gadgets in the preview of the OS 3.5 Font preferences editor are drawn with the correct height. · Fixed a problem which caused garbage or black rectangles to appear in window borders on deep screens if VisualPrefs' "Don't optimize..." option was turned on, a "GadTools" or "Filled" frame style was used for system gadgets, and PatchControl was started before VisualPrefs in the Startup-sequence. · Fixed a bug which caused system gadget images to look trashed if the "RTG mode" bit was set in the "Special" environment variable and Birdie was used with VisualPrefs' "Don't optimize..." option turned on. · Some menu items of the GUI editor could fail to correctly update the contents of the "Bitmaps" text gadget in the "System" page. Now fixed. · The "tbiclass" API now supports a new attribute allowing to ask an image about its inner dimensions (useful for more accurate rendering of additional imagery inside the image). See the "VP-Developer.doc" file for more details. · The version string of the VisualPrefs and GUI executables now reports the specific CPU the program is optimized for (except for the 68000 version). Changes from release 1.5a ------------------------- · It seems that the new semaphore system, while working better for most people, causes some problems on a few specific configurations. So you can now choose whether to use it or not: by setting a bit in the "Special" environment variable you tell VisualPrefs to keep handling semaphores the old way. Changes from release 1.5 ------------------------ · Now VisualPrefs consumes significantly less CHIP memory when using bitmaps. · By setting a bit in the "Special" environment variable you can now prevent VisualPrefs from adjusting the results of the IM_FRAMEBOX method of "frameiclass" (usually done to better reflect the border thickness). · By setting a bit in the "Special" environment variable you can now prevent VisualPrefs from using any CHIP memory at all, if you're using CyberGraphX and have the PLANES2FAST variable set to "1". If Picasso96 supports a similar feature, this should work with it too, although it wasn't tested. · Now VisualPrefs supports the usage of the { GTSC_Arrows, 0 } tag item in the creation of GadTools scroller gadgets, although it's actually an undocumented feature of GadTools and therefore shouldn't be used. · Reworked the internal semaphore handling in order to avoid some rare (but possible) deadlocks at boot time and/or at the re-opening of the Workbench screen. · The wrong pens were being used to draw the frame of selected screen depth gadgets in "Simple" or "Filled" style. Now fixed. · Now the GUI editor refuses to load anything which isn't an IFF preferences file. · Included new select.gadget which fixes a bug that caused it to ignore the NG_HIGHLABEL flag when rendering non-centered gadget labels. Changes from release 1.4 ------------------------ · Added support of external bitmap images for system gadgets! You can also redefine the symbols of checkbox and cycle gadgets. See the new section to learn how to use this feature, as well as the "Sample.ilbm" picture and the sample bitmap set found in this archive. · Now the button frame style and inner symbol style for system gadgets have become independent from one another, and can thus be chosen separately. A number of new frame styles have been added, which can be used with any of the usual symbol styles (Standard, XEN, Future, Flat). · Added a new pen (Inactive Glyph) for selection of the color of system gadget symbols in inactive window borders. · Added an option to use the Fill Shine and Fill Shadow pens for the edges of selected frames (when "Alternate look..." is off). · Now selected XEN frames are filled with the Foreground pen (rather than the Background pen) if the "Don't fill selected frames" option is not set. · Now the "Intuition is attempting to reset the Workbench screen..." requester issued by VisualPrefs should always disappear automatically when all the non-Workbench windows have been closed, just like the original IPrefs requester does. · Now the GUI editor tries to open a cloned screen even if the requested one is already open, if the already-existing screen is too small. · Added a new environment variable "VisualPrefs/CopyGTText": set it to "1" to tell VisualPrefs to copy the label text of GadTools button gadgets, rather than simply referencing the original string. This may come useful if you use some programs which incorrectly reuse the same string pointer when they create a list of GadTools gadgets. · Now GadTools string gadgets can have a special look when in disabled state. · Now VisualPrefs can (optionally) change the system standard DrawInfo pens on all screens, rather than only on the Workbench screen. This works also for the template. Also, when doing so, a checkbox in the "Color locking" page allows you to choose whether to have all system standard pens always automatically locked (like Intuition normally would do) or to selectively lock them yourself by hand (like you usually do with custom pens). · The pop-up patch for cycle gadgets can now optionally draw the menu panel directly on the screen's bitmap, rather than opening a window. This enhances the "smoothness" of pop-up menu operations. · Pop-up menus of cycle gadgets can now have a nice zoom-like effect when opening and closing, with a configurable duration. · New SCREENBARFONT tool type for the GUI editor, allowing to use the current screen's font for screen and window titlebars drawn in the preview area, even if using a different font for the rest of the editor. This way you can see the titlebar gadgets exactly in the size they would have on the current screen, rather than the size they would have on a screen using the editor's font. · When saving the template, the GUI editor now displays a proper requester with a number of gadgets allowing to choose all template options at once, rather than having to go through a series of simple EasyRequesters. · A new "Allocate new color" option for the template, which allows for more precise color selection than "Find best match", creating the color if a suitable one doesn't already exist (it doesn't lock the pen, however). · A new "Lock pens" option for the template, allowing to lock all the GUI pens on screens which the template is applied to (only if the template uses the saved values for pen assignment, as otherwise it isn't necessary). · A new "Bitplane threshold" setting for the template, to determine a minimum number of bitplanes under which the pens are given simple default values regardless of what method was selected for pen assignment. This is especially useful with pen color remapping, which is usually ok with deep screens but gives poor results on screens with few colors. · A new "Allow nameless screens" option for the template, which tells VisualPrefs to apply the template even to screens having no title. · Reworked some internals of the GUI editor in order to make it somewhat quicker, especially when refreshing or resizing its window. · Now the "Open..." menu item is no longer disabled on screens other than the Workbench one, allowing you to load preset preferences files on any screen. Furthermore, when loading a preset containing just one screen definition, you can now choose to apply it to the screen you're editing rather than to add it to the screen list or to replace the list with it (however, note that applying doesn't affect pen assignment). · By great demand (about three people, one of which didn't ask me directly) VisualPrefs is now able to make the window sizing gadget thinner than the standard 18 pixels, therefore narrowing also the right window border. However, as Intuition does NOT really support such a thing, in order to achieve this the right window border needs to be quickly redrawn by the patch upon opening. Hopefully, on fast enough systems this won't be too noticeable; if it is, just don't use this feature. · A new menu item in GUI allows you to launch your preferred palette editor. The default is SYS:Prefs/Palette, but you can override this by using the new PALETTE tool type to indicate a different editor (like FullPalette). · The GUI editor now reads some settings (currently SCREENBARFONT and PALETTE) from its icon if you don't specify them on the command line when starting it from the Shell. · New "Lock all" and "Free all" gadgets added to the "Color locking" page for your convenience. · Slightly bettered the aspect of arrow symbols in window borders with the "Borderless" system frame style. · A recent version of FPPrefs (40.22) included for people who use FullPalette and haven't yet downloaded the latest release from Aminet. Versions prior to 40.20 don't work correctly with VisualPrefs 1.5. · Now screen titlebars can have a different height than window titlebars! If you have square titlebar gadgets, you can force the screen depth gadget to keep the same width as the window depth gadget by setting a bit in the "Special" environment variable. · By setting a bit in the "Special" environment variable you can now have a new global look with thicker 3D edges for XEN button frames. · Now GadTools gadgets in XEN style use the Text pen (rather than the Fill Text pen) for their label when they are in "selected" state. This preserves the correct XEN look regardless of what color you choose for window titles. · Two new environment variables, "SafetyLevel" and "MinStackSize", which allow to choose how VisualPrefs must behave in low stack conditions within its patches to system BOOPSI classes. If needed, VisualPrefs is now able to temporarily switch to a larger stack when executing BOOPSI classes code. Note well: this feature must be regarded as experimental! · Now the preview area of the GUI editor should be displayed a bit faster on hicolor and truecolor screens. · Added information about the new VisualPrefs mailing list. · Corrected an error in the GUI editor which prevented the cycle gadget used to set the look of "pop-up" highlighted items from working properly. · VisualPrefs could fail to free some memory at the closing of the Workbench screen. Now fixed. · Now VisualPrefs handles much better the palette of two-color screens. · GadTools string gadgets could sometimes have incorrectly sized frames. Now fixed. · Setting the preferences to the "Four-color" mode on the Workbench screen, then visiting another screen, doesn't cause anymore the loss of Workbench's multicolor settings due to them being overwritten with the four-color ones. · Edges of pop-up menu drop shadows have now the correct shape when the "round edges" option is active. · The dithering for normally disabled gadgets and for the background of GadTools proportional gadgets was being rendered with an incorrect color in the GUI editor's preview area. Now fixed. · Fixed a bug in the screen depth gadget handling code which could cause deadlocks in certain situations. · Corrected some details of the preview display in the GUI editor. · If a screen using the template couldn't be opened, VisualPrefs was increasing the template usage counter anyway, and never decreasing it afterwards. Now fixed. · Added a workaround for a confict with NewIcons which caused window titles to be written more than one time and slightly out of phase when NewIcons' "Outline" option was selected. · Added some stack-checking code in the "frameiclass" patch: now the custom routines of VisualPrefs aren't executed if the stack is too low. This prevents the input.device from crashing for a stack overflow when clicking on some (fortunately very rare) stack-hungry GUIs. · Now the screen titlebar's bright edge attempts to repair itself whenever it's damaged by Directory Opus titlebar messages. · Added a workaround for a bug in WordPerfect which caused the program's requesters not to be displayed with VisualPrefs running. *************************************************************** Author: Massimo Tantignone Via Campagnoli, 4 28100 Novara (NO) ITALY E-mail: tanti@intercom.it