@database
@wordwrap
@$VER: IconHandler_Guide 1.11 (18.01.2000)

@node main "IconHandler V1.11: Contents"
****************************  IconHandler V1.11  ***************************

                          ©1997-2000 Tim Jackson

                        Revision date: 18-Jan-2000

@{"Introduction to IconHandler" link whatis}
@{"At-a-glance guide to recent changes" link changes}
@{"System requirements" link sysreq}
@{"Files which should be in this distribution" link files}

@{"Getting started: Configuration" link config}
   @{"Tooltypes" link tooltypes}
@{"Usage" link usage}

@{"Planned future improvements" link future}
@{"Known bugs" link bugs}
@{"Version history" link versions}
@{"Support and latest version" link support}

@{"Copyright and Distribution" link copydist}
@{"Disclaimer" link disclaimer}
@{"Acknowledgments" link acks}

@{"CONTACT ME!!!" link me}
@{"By the same author..." link otherprogs}

@endnode



@node whatis "What is IconHandler?"
IconHandler is a program to help manage file icons on Workbench.  Say you
create a file using a program which does not save icons with the file or
saves them with icons you don't like. You might want to give that file an
icon, or perhaps remove it altogether. Normally this would involve either
copying an icon from another file using the CLI or using an icon editor to
load an icon from another file and save it out to your new file.  Or
deleting the icon file manually in the case of wanting to remove it.

But no longer. :)

Now, you can simply have an AppIcon on your desktop which sits and waits
for you to drop files on it.  Then you can select from a list of your
favourite icons, click and...bang!  Your file has a new icon! Or you can
remove an unwanted icon at a click.
@endnode

@node sysreq "System requirements"
I believe IconHandler should run on any Amiga with OS2.04 or higher.
However, I have only tested it on an A1200 with OS3.0.  I have been
informed that it works fine on OS3.5.
@endnode

@node changes "Recent Changes"
@{b}V1.10 -> V1.11@{ub}
Adding new icons to the list is now much easier - no more editing the
config file!  Just drop an icon on the AppIcon, choose "Add icon(s) to
list...", enter a name for the icon type and that's it!  Thanks to Daniel
Westerberg for suggesting this feature.

A small bug which would have reported an error if for some reason your
config file didn't have a CR at the end has been fixed.

There are now keyboard shortcuts for most things, although not for the
main icon list (yet), which I guess makes it somewhat less useful. Oh
well :)

After investigation, the version string has been fixed again,
incorporating a 4 digit date.  Anyone using a version of the "version"
command which returns a silly date when doing "version IconHandler" (or
any other program) can download a fixed version of the command from Amiga
Technologies.  The URL is:
http://www.amiga.de/diary/developers/Version_v40.3.lha

@{b}V1.9 -> V1.10@{ub}
There are new options (via checkboxes in the selection window) to preserve
the icon's tooltypes and/or default tool when giving it a new icon.

The version string in IconHandler and IconHandler.guide has been
deliberately broken (to read 11-Jan-2000 rather than 11.01.00) as a result
of the Y2K bug in version.library pending further investigation about what
the correct course of action is.

@{b}V1.8 -> V1.9@{ub}
There is now a new option (at the end of the icon types list) to remove an
icon from a file altogether.  I've been meaning to add this for ages but
never got round to it up to now.

Starting IconHandler from the CLI now works again, I think this got broken
in V1.6.

If you fail to supply a config file, you DO now actually get the default
types + "remove icon" options, up till now IconHandler claimed you did but
you just got a blank list!

Some internal reorganisation of the icon processing code has been done to
make it more efficient.

@{b}V1.7 -> V1.8@{ub}
Fixed lame bug which caused Enforcer hits and crashes on some systems
when opening the window with the list of icon types. Sorry about that
folks.

Whilst I was doing that, I spotted another lame bug which must have been
around for ages (since at least V1.4). It caused a minor (read
from zero) Enforcer hit under certain circumstances.

@{b}V1.6 -> V1.7@{ub}
Added LISTSIZE tooltype to allow you to define the size of the list which
appears when you drop an icon onto IconHandler.  Now those of you with big
screen resolutions can see more of the list of icon types at once! :) 
Thanks to Richard Kapp and girlfriend Barbara for inspiring this feature.

Minor improvements have been made to the error handling routines so if for
some reason an error occurs you should get a bit more information rather
than IconHandler just quitting itself without explanation.
@endnode

@node files "Files in this distribution"
In this distribution, there should be the following files:

IconHandler         * The main program
IconHandler.info    * Main program icon file + tooltypes (required)
IconHandler.config  * Example config file
IconHandler.guide   * This document
IconHandler.guide.info

@endnode

@node config "Configuring IconHandler"
Configuring IconHandler is easy. The configuration file is a plain
text file which tells IconHandler which icons you wish to make available.
You can edit it by hand or, from V1.11 onwards, you can now add icons
using the main program.

@{u}Adding icons using IconHandler@{uu}
When you start IconHandler for the first time it will complain that it
can't find the config file. Don't worry about this.  You'll find if you
drop any files on IconHandler, you'll get a list just containing the basic
'default' system icon types.  To start adding your own types, find some
icons which you want to use regularly (e.g. icons for documents, pictures
etc.).  It would be a good idea to put a copy of all these in a drawer
together somewhere, although this is of course not necessary if you prefer
not to.

So, let's say you have a file HD1:Icons/Pic.info which is an icon file
appropriate for a picture.  Using Workbench, open 'HD1' and then 'Icons'
and then you should be able to see the icon.  Drop this icon onto
IconHandler's AppIcon and choose the "Add dropped icon(s) to list..."
option. You will then be prompted to enter a name for your icon type. A
good choice would be "Picture" but you can enter anything you want. Click
OK and assuming all goes well a small confirmation will appear. Now find a
file which you want to give the picture icon to. Drop it on IconHandler
and you should find "Picture" (or whatever you entered) is in the list.
Click on this and your file will be given a new icon!

If you want to remove icons from the list I'm afraid you'll have to resort
to editing the config file; see below for more information.


@{u}Adding/removing icons using the config file@{uu}
The config file is in the format:

<Name of icon type>
<Full path of icon file, @{b}excluding@{ub} the .info extension>

For example, an entry as follows:

@{i}Picture
HD1:Icons/Pic@{ui}

would define an icon type 'Picture' which takes as an example the icon
file HD1:Icons/pic.info.

Once you've created your preferences file you need to save it.  I
recommend saving it to ENVARC:IconHandler.config but you can actually save
it anywhere you like, as long as you set the @{"CONFIG tooltype" link
tooltypes} to point to the location where you've saved it.

There is an @{"example config file" link IconHandler.config/Main} included
which demonstrates what an IconHandler prefs file might typically look
like.


@{u}In either case@{uu}
You can have up to 63 entries.  This is a hardcoded limit.  I don't think
it should be a problem, but if it is then let @{"me" link me} know. 
Either way, I hope soon to remove this limit altogeter.  The other limit
is that each line must be no longer than 256 characters long in total.
Again, this shouldn't be a problem unless you have some @{i}very@{ui} long
pathnames!



Further @{b}optional@{ub} customisation can be done by editing
IconHandler's @{"tooltypes" link tooltypes}.
@endnode

@node tooltypes "Using the tooltypes"
IconHandler offers a number of tooltypes which can be used to configure it
to your exact needs.  They are all optional, and defaults have been
inserted as examples of their usage.


@{b}APPICONTEXT@{ub}
Default: @{i}IconHandlerAppIcon@{ui}
Specifies the text to be placed under the IconHandler AppIcon on
Workbench.


@{b}ICONXPOS@{ub}
Default: <None> (The icon will be positioned as Workbench sees fit)
Defines the X position of the AppIcon on the Workbench screen.


@{b}ICONYPOS@{ub}
Default: <None> (The icon will be positioned as Workbench sees fit)
Defines the Y position of the AppIcon on the Workbench screen.


@{b}CONFIG@{ub}
Default: @{i}ENVARC:IconHandler.config@{ui}
Specifies where the IconHandler configuration file is to be found.


@{b}APPICON@{ub}
Default: @{i}PROGDIR:IconHandler@{ui}
Specifies an icon to be used as the AppIcon.
To use, enter the full path of an alternative icon, excluding the .info
extension

@{b}LISTSIZE@{ub}
Default: @{i}10@{ui}
Specifies the number of icon types to be displayed at once in the list
which appears when an icon is dropped onto IconHandler.
If you choose a number which is too large, i.e. the window containing the
list would not fit on the screen, an error will be displayed and
IconHandler will quit.


If any of the above tooltypes are not specified, a default will be used.
@endnode

@node usage "Using IconHandler"
To start IconHandler, you can either double-click on the icon or (even
better) put it in your WBStartup drawer.
You can also start it from the CLI if you really want to, although it
won't work if you've done weird stuff like renaming the program file or
made it resident.

Once it's running, you'll see the AppIcon appear on Workbench.  Now drop
one or more files on the AppIcon and you'll see the main window appear. In
this window will be a list of your icon types (as defined in the
@{"config" link config} file), plus some default types and also a 'Remove
icon' option. You can now click on an icon type to give the file/drawer(s)
you dropped a new icon.  Alternatively, click 'Cancel' to close the window
and leave the files as they were.  If you want to preserve the tooltypes
and/or default tool of the file before you give it a new icon, make sure
the appropriate checkbox is ticked.

The "Add dropped icon(s) to list..." button lets you add the icon you just
dropped as an entry to the config file - see @{"configuring IconHandler"
link config} for more details.

You can also access two menu options, 'About...' and 'Quit' whilst the
main window is open, although the functions provided by these options are
also accessible from the AppIcon, as described below.

If you double click on the AppIcon, you will get a requester asking you
what you wish to do.  Clicking 'Quit' will quit IconHandler, 'About...'
will give you version information etc., and 'Cancel' will simply close the
requester.

In general, the file/drawer(s) you drop on the AppIcon will take on the
properties of the new icon you give them - tooltypes, file type (project,
tool etc.), default tool etc. (unless you have checked the "Preserve
default tool" and/or "Preserve tooltypes" option(s) in which case the
relevant info will be preserved).
However, there is one important exception to this. If you try to give a
drawer a file icon, or give a file a drawer icon, IconHandler will notice
this and preserve the original icon type since it is pretty useless and
meaningless to have a drawer which has an icon set to type 'project' (for
example). The best way to see what I mean is to try it! An example is, if
you dropped a drawer onto the AppIcon, and clicked to give it type
'AmigaGuide file' (assuming you had this type set up), the drawer WOULD
get an AmigaGuide icon but would still be a drawer.

The 'Default - xxx' options  work in exactly the same was as the other
options, and the files are given the default system icon appropriate to
which option you selected.

The option at the bottom of the list entitled '*** Remove icon from file
***' does exactly what it says - it removes the icons from the file(s) you
dropped altogether.
@endnode

@node future "Future Improvements"
Here's what I'm planning:

- Remove the 63 icon type limit
- Fix the (few) known bugs :)

And here are some possibilities that I'm considering for future
improvements:

- Pattern matching for auto recognition e.g. all files matching pattern
  #?.jpg would automatically get a 'picture' icon.
- Add option to 'snapshot' position of AppIcon (is it possible?)
- A proper GUI for editing the config file

If you have any comments on the above, or have any other suggestions,
please feel free to contact @{"me" link me}.
@endnode

@node bugs "Known Bugs"
- If you select 'Default - Disk', files do not seem to be given a 'disk'
  icon and instead get a 'drawer' icon (although the type is set to Disk).
  I'm not sure why this is, the code seems OK.  Let me know if it annoys
  you and I'll look into it again.
- You need to make sure you press ENTER after entering an icon type name
  when using the function to add icons to the config file.
- If you have lots of blank lines at the end of the config file you'll end
  up with some blank lines in the icon type list, and possibly an error
  about an odd number of lines when loading.

I don't *know* of any more bugs at the moment, but there almost
undoubtedly are some, somewhere! If you find any, *please* report them to
@{"me" link me} - I will be very grateful. Thanks!
@endnode

@node versions "Version History"
V1.0  Original version
V1.1  GUI tidied
V1.2b FIRST BETA RELEASE
      Totally rewritten GUI.
      Number of prefs entries now unlimited.
      Speeded up file writing.
V1.3  FIRST PUBLIC RELEASE
      WB window updates when the new icon is written
      Icon positions within directory windows are preserved
      APPICONTEXT, ICONXPOS, ICONYPOS, CONFIG, APPICON tooltypes added
      Multiple file support
      Corrected bug which prevented quitting until the main window was
      closed.
V1.4  Directories can now be given icons.  Thanks to Stuart Caie for help.
      Correct version number put in window title!
V1.5  Now notices if you try to give a file a directory icon and vice
      versa
V1.6  Config file reading routines rewritten
      No longer complains about blank line at end
      Added 'default' types.
      Made tooltypes still work if program has been renamed
      Default config file name changed from iconhandler.prefs to
      iconhandler.config
V1.7  Added LISTSIZE tooltype.
V1.8  Fixed lame bug which caused Enforcer hits and crashes on some
      systems when opening the window with the list of icon types.
      Fixed another lame bug which must have been around for ages which
      caused an Enforcer hit under certain circumstances.
V1.9  Added option to remove icon from a file
      Did some internal reorganisation to make it more efficient
      Fixed CLI starting, it now works and no more Enforcer hits!
      (I think this got broken in V1.6)
      Made IH work properly if started without a config file
V1.10 Added options to preserve tooltypes/default tool
V1.11 Added option to drop-add to config file
      Fixed bug if no CR at end of config file
      Added keyboard shortcuts for most actions
@endnode

@node support "Support"
IconHandler is still under development, which means new versions will
appear from time to time. I will release new versions as soon as they are
in a fit state to be placed in public distribution.

The latest version of this program, along with some other programs I have
written, can always be downloaded from my program support web pages, which
can be found at the following URL:

http://www.radiolink.net/timjackson

(If this doesn't work, then use http://www.bigfoot.com/~tim_jackson and
follow the links to "Amiga Pages")

New versions will also be uploaded to Aminet as soon as they become
available, and will have the filename util/wb/IconHandler.lha.

E-mail enquiries are always welcome, see my @{"contact" link me} page for
details.
@endnode

@node me "Contact me!"
If you've found IconHandler useful, TELL ME ABOUT IT!  The program is
freeware; there is nothing to be paid but I'd like to hear from you anyway.

Any bug reports or suggestions for improvement should also be sent to the
below e-mail address:

tim_jackson@bigfoot.com

I occasionally use IRC and when I do, my usual nick is Arcline.  I tend to
hang around on IRCnet.  A list of IRCnet servers can be found at:

http://www.irchelp.org/irchelp/networks/servers/ircnet.html

Alternatively, whenever I'm online, I can usually be found on ICQ.  My UIN
is @{b}16567498@{ub}.
@endnode

@node copydist "Copyright & Distribution"
This program is FREEWARE.  That means you can copy it and freely
distribute it (including uploading to a BBS/Aminet etc.), as long as:

- You don't charge anything for it (except a nominal charge for disk and
  copying)
- You include all the files listed above in any distribution.
- You don't modify any files.

(For inclusion on compilation CDs or magazine coverdisks/cover CDs,
@{"contact me" link me}.  Any other queries, contact me.  No permission is
necessary for inclusion on Aminet or Fred Fish CDs.)

The copyright of the program remains with me at all times.
@endnode

@node disclaimer "Disclaimer"
You use this program entirely at your own risk.  The author will accept no
responsibility whatsoever for any loss or damage caused by this program
including but not limited to loss of or damage to data.
@endnode

@node acks "Acknowledgements"
I would like to thank the following people for their contribution to the
development of IconHandler:

- Stuart 'Kyzer' Caie for help with handling drawers dropped onto
  IconHandler
- Richard Kapp and girlfriend Barbara for inspiring the LISTSIZE tooltype
- Daniel Westerberg for inspiring the option to add icons to the config
  file by dropping them on the AppIcon
@endnode

@node otherprogs "By the same author..."
I've written a few other little programs for the Amiga too.  Try
them, you might just like them! :)

Here's a quick overview:

- @{b}GetMouseInput@{ub} - a wonderfully simple but invaluable program
which reads the state of the mouse buttons from a mouse connected to
either the mouse or gameport.  The result can then be read from AmigaDOS
scripts etc.  Very useful in startup-sequence to select different startup
files.

- @{b}Archimedes Sprite Displayer@{ub} - a program to load and display
sprites (graphics) from Acorn Archimedes computers. The resulting screen
can then be grabbed as an IFF by any screen grabber you have.

- @{b}StripCodes@{ub} - a very simple program which will strip any
occurences of a particular ASCII character from any file. You can also
optionally replace a particular ASCII character with another character.

All these and more can be found on my website.  Check it out:

http://www.radiolink.net/timjackson

(Alternative URL: http://www.bigfoot.com/~tim_jackson and follow links)
@endnode
