@database @wordwrap @$VER: IconHandler_Guide 1.13 (24.02.2000) @node main "IconHandler V1.13: Contents" **************************** IconHandler V1.13 *************************** ©1997-2000 Tim Jackson Revision date: 24-Apr-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.12 -> V1.13@{ub} At long last the hardcoded limit of 63 icon types is gone! Some internal reorganisation has happened to fix this, which has also resulted in slightly more efficient memory usage. Along with this, IconHandler no longer reloads the config file every time you add a new icon too though I doubt anyone will notice the difference :) @{b}V1.11 -> V1.12@{ub} Fixed small bug which meant that if you were adding a new icontype to the list using the feature introduced in V1.10, you had to press ENTER before OK if you were editing the name of the icontype. Added new tooltypes: PRESERVEDEFTOOL PRESERVETOOLTYPES These specify the default behaviour of the "Preserve default tool?" and "Preserve Tooltypes?" checkboxes in the main window. Specifying them turns the checkbox ON by default. @{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. @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: 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} As of V1.13 you can have an unlimited number of entries. The only other limit is that each line in the config file 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: (The icon will be positioned as Workbench sees fit) Defines the X position of the AppIcon on the Workbench screen. @{b}ICONYPOS@{ub} Default: (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. @{b}PRESERVEDEFTOOL@{ub} Default: @{i}(Off)@{ui} If specified, when the main window opens for the first time then the "Preserve default tool?" checkbox will be ticked, meaning that the default tool of a dropped icon will be preserved. @{b}PRESERVETOOLTYPES@{ub} Default: @{i}(Off)@{ui} If specified, when the main window opens for the first time then the "Preserve tooltypes?" checkbox will be ticked, meaning that the tooltypes of a dropped icon will be preserved. 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 if you do this then it probably 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 settigs of the "Preserve default tool?" and "Preserve tooltypes?" checkboxes will be kept for as long as IconHandler is running; i.e. next time you drop an icon onto IconHandler, they will have the same settings you last used. 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: - 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. - 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 V1.12 Fixed bug requiring ENTER press before OK in window to add new icon type to list Added PRESERVEDEFTOOL tooltype Added PRESERVETOOLTYPES tooltype V1.13 Removed limit of 63 icons in list (at last!) Internal reorganisation - more efficient use of memory and no longer reloads the config file every time you add a new icon @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 and help removing the 63 item limit @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