Short: Adds iconify gadget to windows. BETA version. Author: Håkon Enger (henger@fys.uio.no) Uploader: henger fys uio no Type: util/misc Version: 0.8 beta Architecture: m68k-amigaos NOTE: This is a beta version. If you use this program, it WILL cause your computer to crash, sooner or later. If you still want to try it, I would be grateful if you tell me when you find a bug. CHANGES SINCE VERISON 0.7: · The WIDTH option, which was totally unusable was fixed. · The gadget now assumes the correct width automatically, also on gfx boards (I hope) · App-icon handling is now done by the IconifyGadget process itself, so the MCP bug is gone. Don't expect MCP AppChange to be useful anyway, though. · The WBWINDOWS option was moved to the config file · Slightly new format of config file, including an option to specify the file name of the config-file. · Now has an option to save the contents of windows, especially useful for SMART_REFRESH windows. · Supports StartMenu version 2.0! This is still somewhat experimental, since all I have is a beta version of StartMenu 2.0. Expect Iconify- Gadget to hang frequently! (Think this is a StartMenu bug...) Commodities/IconifyGadget Commodities/IconifyGadget NAME IconifyGadget - add iconify gadget to windows USAGE IconifyGadget [Screens {WORKBENCH|PUBLIC|ALL}] [IKey ] [3DLook] [Width ] [MoveRight] [SaveSmart] [CX_Priority ] [Config ] REQUIREMENTS Any Amiga computer with Workbench 2.0 or higher. FUNCTION If you run a lot of programs that open windows on the Workbench screen, the screen easily gets overcrowded. IconifyGadget helps with this problem by adding an option to iconify windows. Windows that are iconified are temporarily removed from view and replaced by an icon. When the icon is double-clicked on, the window appears again and the icon disappears. Iconifying windows with Iconify- Gadget is done by clicking on a new gadget appearing to the left of the "Zoom" gadget in the upper right corner of the window, or by pressing a user-selectable key defined by the IKEY parameter. Not all windows are iconifiable, see the DISCUSSION section below for details. Also read the WARNING and BUGS sections below. IconifyGadget is a commodity, so it can be controlled by the Commodities Exchange utility. Removing IconifyGadget is dangerous if other programs have patched the library functions that are patched by IconifyGadget. Se DISCUSSION. The gadget used is visually similar to the iconify gadget used by MUI, which is also used by KCON. An alternate image is provided and may be selected with the 3DLOOK switch. This image may be preferred if you use "SysIHack". A config file is used to specify several options to IconifyGadget. This file is described in the section CONFIG FILE OPTIONS, below. IconifyGadget also supports the StartMenu application, a Windows 95 "TaskBar" clone program which adds a menu bar to the bottom of the screen. With appropriate options in the config file, windows may show up in this bar instead of as icons when they are iconified. PARAMETERS All parameters can be used as tooltypes when started from WB or as command line parameters when started from the Shell. SCREENS Define which screen(s) the programs will affect. Specifying WORKBENCH will only affect windows on the Workbench screen, PUBLIC will affect windows on all public screens, and ALL will affect windows on all screens. Since the icons appear only on the WB screen, iconifying windows on other screens seems a little weird, but if you want it, there it is. Default is WORKBENCH IKEY Specify a key sequence that will iconify the active window. Default is none. 3DLOOK For those who like to fool around with sysihack, this switch gives an alternate image for the gadget. WIDTH Width of the iconify gadget. If not specified, the standard width will be used, based on the resolution of the screen. MOVERIGHT Move the gadget right if there is no zoom gadget. This might be confusing since the iconify gadget might be mistaken for the zoom gadget, so it's an option. SAVESMART Use this switch to remember the contents of all SMART_REFRESH windows. Also see the SAVE option in the config file. CX_PRIORITY Priority for the commodities exchange broker. CONFIG Specify the name of the config file. The default name is "ENV:IconifyGadget.config". CONFIG FILE OPTIONS The config file is by default called "ENV:IconifyGadget.config" but this can be changed with the CONFIG option. Each line is this file specifies what IconifyGadget should do with a certain window, or a certain class of windows. The lines in should contain the following: · ONE of the following three keywords to specify which class of windows the options on this line is for: - A standard AmigaDOS wildcard pattern, to be matched with the title of the window. - The keyword WBWINDOWS, specifying windows created by the Workbench process. - The keyword DEFAULT, specifying windows not matched by any of the above. · Optionally the keyword IGNORE, meaning that this window should be conpletely overlooked by IconifyGadget. · Optionally the keyword NOGADGET, meaning that IconifyGadget should not add a gadget to this windows border, but that it should still be possible to iconify the window with the hot key. · Optionally a file name for the icon to use for this window, without the ".info"-part. · Optionally the keyword CLOSE, meaning that the window should function excactly like the close gadget of the window. This is useful e.g. for Workbench windows, which already have icons. It is also useful for programs that iconify themselves when you press the close gadget. · Optionally the keyword SAVE, which indicates that the contents of this window should be remembered when the window is iconified. This takes some extra memory, and at the moment the window must be brought to front before it is iconified to reveal any part of the window that is hidden. This option is useful for windows that do not refresh correctly when un-iconified, such as many SMART_REFRESH windows. Also see the SAVESMART option. · Optionally the keyword BARIFY, which indicates that the window should appear in the StartMenu bar when iconified, if StartMenu version 2.0 or later is running. Here is an example of a config file: ------------------------------------------------------------- Default ENV:sys/def_Iconify WBWindows CLOSE Exchange#? sys:Tools/Commodities/Exchange DeliTracker#? CLOSE AmigaShell sys:System/CLI ------------------------------------------------------------- DISCUSSION This program is one I have wanted to write ever since I got hold of Ewout Walraven's "Iconify". That program made it possible to iconify most windows by pressing ctrl and double-clicking in them, but I wanted a gadget to click on! So here it is, finally in beta version. Comments and bugreports are welcomed! I owe a lot to Ewout Walraven for this program, even if he doesn't know it himself. The method used for iconifying the windows was inspired by "Iconify", and also the icon was stolen from there. The program works by adding a gadget to all windows that are iconifyable. That means that they are refreshable and not gimme- zerozero or borderless. If the window already has a gadget in the position where IconifyGadget adds it's gadget, the window is considered not iconifyable by IconifyGadget. This is usually because the program that uses the window has provided a way to iconify thw window. The windows are iconified by resizing and moving the layer of the window to the bottom left corner of the screen. (Clicking in this corner may give strange results for some windows!) The window is never really removed from the screen, so the screen can not be closed if there are any iconified windows left. When the windows are iconified, they will be represented by an AppIcon on the Workbench screen. Double-clicking on this icon will bring back to full sized window to the front of the screen. IconifyGadget patches the following intuition.library functions: OpenWindow, OpenWindowTagList, CloseWindow, AddGadget and WindowToFront. If a program that patches any of these is started after IconifyGadget, it should be removed before IconifyGadget is removed. Alternatively, you can use a utility such as PatchControl to handle the patches. WARNING Fooling around with other programs' windows is NOT a nice thing to do. If you don't like to take chances, don't use this program. BUGS This is a beta version, so there are probably lots of unknown bugs. Since this program seriously hacks the system, it's probably not possible to eliminate all 'bugs' (cf the warning above). I'll try to do my best, however. There is a that makes CPR crash if you try to add an iconify gadget to it's windows. I have not been able to find out why this happens. The following bugs were reported by people trying ealrier versions: · MUI3 windows get two iconify gadgets (mine and theirs). Solution: Turn of iconifying for either MUI or IG (using the config file). (First reported by Carl Seward) · Workbench windows like Execute and Info can be iconified, but since workbench is frozen while these windows show (not Info in OS3.0+), the icons never show up and hence they cannot be un- iconified. Solution: Use the config file to ban these windows from iconifying. (First reported by John Gardi) · Adding an iconify gadget to the CPUsage meter of SuperDashBoard causes a crash. Solution: Same as above (for now...) (Also reported by John Gardi) Some windows mysteriously un-iconifies themselves if you click in the lower right corner of the screen. Some windows don't refresh correctly when they are un-iconified. Soultion: Use the SAVE option in the config file or the SAVESMART option on the command line or in the tooltypes. When you find a bug, please inform me on how it occured. If you have the source code to the program that was making IconifyGadget crash, it would be of great help to me if you could send that too. My address (email and otherwise) is at the end of this document. THANKS Thanks to Ewout Walraven for making the Iconify program. Thanks to everybody who reported bugs and had suggestions to the first release of IconifyGadget. COPYRIGHT IconifyGadget is Copyright © 1995 Håkon Enger This beta version may not be distributed without explicit permission from the author. Such permission is given to the AmiNet collection of Amiga software FTP sites. AUTHOR Håkon Enger Email addresses: henger@fys.uio.no, haakone@ifi.uio.no. If one of them bounces, try the other one. Regular mail should be addressed to: Håkon Enger Rikard Nordraaksveg 12 N-2400 Elverum Norway