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 <keyseq>]
[3DLook] [Width <width>] [MoveRight] [SaveSmart]
[CX_Priority <pri>] [Config <configfile>]
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
|