Icon Mover 3.0
1/18/96

Integrated Graphics
312 Nevada St.
Northfield, MN 55057-2345

E-mail: hansonr@stolaf.edu

INTRODUCTION
------------

Icon Mover, ICONMOVR.EXE, enables a user to transfer standard Windows 3.1 
icon and icon-related device-independent bitmaps (32x32, 16-color) from one 
application or group of applications to another. Transfer of icon bitmaps 
between any two ICO, BMP, DLL, EXE, FRX, VBX, etc... files is supported. 
Icon Mover finds all bitmaps any file or directory of files, displaying up 
to 1000 at a time, and can read icons from most GRP files. All icons stored 
in files are located, even including those not known to Windows. All such 
bitmaps are displayed graphically and moved by clicking and dragging of 
the mouse. Alternatively, icons can be extracted into ICO, BMP, DLL, or DLX 
(expandable DLL) files directly by right-clicking on them. A 10-icon cache 
is preserved between sessions.  
  In addition, icons can be extracted from BMP files of any size or format 
OR FROM THE SCREEN by simply "driving" an icon "window" around the bitmap,
selecting the portion of the bitmap desired as an icon. Bitmaps may be
scaled up or down by a factor up to 16 prior to icon extraction.
Icons produced from bitmaps may be opaque or transparent, as desired, and
colors may be remapped or changed. Colors of icons can also be remapped
prior to including in other files or libraries.
  Icon Mover introduces a completely new method of working with icons 
in terms of DLL libraries. The "expandable DLL" files (default extension 
"DLX") created by Icon Mover expand to fit up to 2544 icons with less than 
10% overhead. DLX files are fully readable by Program Manager and Windows 
API functions such as ExtractIcon. Alternatively, icons can be stored in 
libraries created simply with a DOS command such as COPY *.ICO MYLIB.ICO.
  Alhough Icon Mover is not an icon editor, it does include an interface 
which allows editing of icons and bitmaps via an external icon
editor. A very minimal sample icon editor is included as ICONEDIT.EXE.

CHANGES IMPLEMENTED IN ICON MOVER 3.0
-------------------------------------
Capturing of icons directly from the screen! (registered version only)
You can pause to open/close/move applications or windows.

The bitmap extraction form was vastly improved, allowing full mapping of 
one color onto another. 

The bitmap extraction form was totally rearranged:
  icon is twice the original size;
  actual-size icon is also included;
  arrow keys are active for scanning around the bitmap; 
  scaling scroll bar was repositioned and now works in a more intuitive manner.

Bitmap extraction was sped up immensely using a new algorithm

A bug was fixed that caused the first icon cache icon clicked to not show
the correct drag picture.

A bug was fixed that caused the default extension in file boxes to not be 
reset appropriately. 

A bug was fixed that caused problems with mapping new colors. 

A bug was fixed that caused the palettes for bitmaps to indicate one too 
many colors. 

CHANGES IMPLEMENTED IN ICON MOVER 2.5
-------------------------------------
The main screen was vastly improved, allowing "smart" resizing of the window
with automatic resizing of the grids. Grids can now be as wide or deep as the
screen allows. These settings are kept in the INI file for smooth program
reentry.

"Long" display now simply removes the destination info and gives that 
space to the source display. The cache is no longer hidden in 
the long display, making the long display more serviceable.

The "show detail" form was reorganized and repositioned so that for larger 
screen sizes it does not get in the way of the destination icons. It will 
follow the main form when the main form is resized. For this reason,
maximizing of the main form is not allowed.

In addition, a new pop-up menu item, "remap icon colors" was added, and 
a new drop-down option, "reset form size to defaults" was added. The pop-up
menu item "edit icon" was expanded to allow editing of icons from any 
of the three areas, source, destination, or cache. Non cache changed 
icons are then cached. This improves the philosophy that "YOU CANT DO
ANYTHING TO A DESTINATION ICON EXCEPT FROM THE CACHE"

A cosmetic bug was fixed that caused the "short display" option to always 
be checked. Screen flicker when dealing with mutiple input files was 
corrected (The file name label was overlapping the grid by 5 units!)

A bug was fixed that resulted in the incorrect parsing of filenames when the
directory path included a ".". 

A more disgusting bug was fixed which caused the icon cache to not be able 
to be deleted from within the program and might also cause the system to 
run out of file handles. (The file was being reopened without being closed 
first!). 


CHANGES IMPLEMENTED IN ICON MOVER 2.4
-------------------------------------
A bug was fixed which caused transfer from certain files to prevent
DLX files from being further expanded and sometimes trashed one DLX
icon.

Yet another SETUP.EXE, this one going back to Visual Basic's, with
a new, more informative front end. 

CHANGES IMPLEMENTED IN ICON MOVER 2.3
-------------------------------------   
New setup.exe only

CHANGES IMPLEMENTED IN ICON MOVER 2.2
-------------------------------------
1. Multiple selects allowed so that several icon-bearing
   files can be inspected and extracted from at once. (REGISTERED
   VERSION ONLY)

2. Expandable DLL files for icon storage allow addition of icons
   at any time to a pre-existing icon library.

3. BMP file reading/writing supported, including scanning of bitmaps
   prior to scaling and extracting a portion of the bitmap for use
   as the icon.

4. 10-Icon cache can be loaded and copied from within Icon Mover.

5. Icons may be edited via an interface to an external icon editor.


INSTALLATION
------------
ICNMVR30.ZIP can be unzipped using PKUNZIP, PKUNZJR, or WINZIP. 
If you do not have one of these programs, you can probably find
one on the site from which you got the ZIP file. In addition, 
you will need VBRUN300.DLL, as this program was produced using
Microsoft Visual Basic 3.0 for Windows. Simtel requests that 
the file VBRUN300.DlL not be included in this ZIP file. You can
get it via FTP at ftp.stolaf.edu in directory /pub/origami/WIN

1. Create a new temporary directory or choose one already on 
   your hard disk.

2. Move ICNMVR30.ZIP to this directory and unzip it there.

3. From the Windows file manager Run...   thatdirectory\setup

   You will be asked to enter a directory into which to install 
   Icon Mover (default is C:\iconmovr). Installation should 
   complete in a few seconds. 

4. Files in the temporary directory may be deleted. Two text files, 
   README.TXT and DLX.TXT may be of interest.

RUNNING THE PROGRAM
-------------------

The operation of ICONMOVR is pretty much self-explanatory. Point and
click with the left mouse; right mouse for a quick pop-up menu. In ALL
operations, the governing idea is that there really is only one way to 
replace icons ANYWHERE: by dragging from the cache to the destination.
This simple operative principle should help guide you. Editing an icon
in the source or destination simply sends it to the cache in its changed 
form.
  
  First designate a source file, either by clicking on "source:"
or by using the pull-down menu. Using CTRL or SHIFT with the mouse
you can designate more than one file, perhaps even the whole directory.
Similarly indicate the destination file.
  To load the cache, simply double-click on either a source or 
destination icon. Once the cache is full, the currently highlighted 
cache icon will be replaced. (Clicking on a cached icon highlights it.)
  To install a cached icon in the destination file, drag a cached 
icon to the destination icon you wish to replace. The original 
destination icon will be swapped into the cache as long as the 
"Swap icon on install" checkbox is checked. If this box is not 
checked, then the old destination icon will be discarded.
  Alternatively, you can right-click on any icon to extract it to 
an ICO, BMP, DLL, or DLX file directly. Highlighting a block of icons 
enables direct transfer from source to destination, or from source or 
destination to an expandable DLL library. Additional icons may be added 
to these files at any time. Though given the designation DLX, these files 
are true DLL files in all respects. 
  Icon Mover finds all valid icons in these files based on a bitmap 
"header" of 12 bytes for *.GRP files and 20 bytes for other files. 
Thus, there is a very small chance that Icon Mover can CONCEIVABLY be 
fooled into thinking that an icon exists when it really doesn't. 
Use your own judgement: 

     If it doesn't look like an icon, including just plain blank,

			DON'T REPLACE IT!!!


EXAMPLES OF USE OF ICON MOVER
-----------------------------

Replacing a specific icon in a specific file

	   Open the source dialog and select the source file containing the 
	     icon you want
	   Double-Click on the icon to copy it into the icon cache
	   Open the destination dialog and select the destination file you want
	   Drag the icon from the cache to the icon in the destination file
	     you want to replace
	   Note that the icons are swapped--the old icon is now in the cache
	     swapping can be disabled by unchecking the 'swap icon' checkbox
	     in the lower right-hand corner of your screen.

Changing the colors or design of an icon

	   Open the icon of interest as the DESTINATION.
	   Click on it with the right mouse button and drag to either 
	      "remap icon/bitmap colors" or "edit icon"
	   Choose a color to change, click on the new color, click on
	      "Check" to see the results, and then on "Ok"
	   If not from the cache, the resultant icon will show up in the
	   cache.

Loading a whole directory of icons into an expandable DLL library

	   Open the source dialog and select all of the icons in a directory
	   (shift-left-drag down the menu of listed files).
	   From the File menu, select 'Select All Source Icons'.
	   Right-click on the block of highlighted icons and select 'append
	   to DLX library'. You will have the choices (a) whether to preserve
	   the current contents of the library or not and (b) whether to open
	   the library as the destination. The latter option is slower, but more
	   fun and often quite useful. 

Adding one or several icons to an existing expandable DLL library

	   Open the source dialog and select one or more files containing icons
	   (CTRL-left-click on the desired files).
	   From the File menu, select 'Select All Source Icons', or select a
	   block of icons as displayed, and right-click on the block.
	   Select 'append to DLX library' from the popup menu.

Note: In all of the above operations, the target DLL file need not be 
loaded as the destination when the transfer is made. Alternatively, you 
can open the library as the destination file. In that case, you can see
the library being built, but the action is a bit slower due to the need to 
redisplay the possibly quite large library.

Caching source icons for use later

	   Open the source dialog and select one or more files containing icons.
	   Double-left click on an icon to cache it. If desired, a specific 
	   cache icon can be replaced by first clicking on IT, then double-
	   clicking on a source icon. 

Caching destination icons for use later

	   Same as for source, except only one file may be opened at a time as a
	   destination. Double-left click on the destination icon to cache it. 

Replacing an icon in any file from the cache

	   Cache an icon as described above.
	   Open a destination file of any type.
	   Ensure that the 'Swap Icon on Install' checkbox is checked unless
	   you really want to permanently lose the icon to be replaced.
	   Drag a cached icon over the destination icon to be replaced.
	   Release the left button. The cached and destination icons will
	   switch location; the old icon can be replaced by simply repeating
	   the drag one more time.

Replacing an icon in an ICO or BMP file without using the cache

	   Open the source dialog and select one or more files containing icons.
	   Now right-click on a source icon and select 'save as ICO file' or
	   'save as BMP file', as you prefer, from the pop-up menu. 
	   Alternatively, you can open the ICO or BMP filename as the 
	   destination and select 'transfer to destination'. 

Note: The popup menu is available from source, cache, and destination.
	   
Note: It is recommended that you use the cache method, with the 'Swap icon 
on install' checkbox checked. Replacing icons in ICO and BMP files without 
caching does just that--immediately and permanently. As a built-in precaution,
You will not be allowed to do replace any EXE, DLL, or DLX file icons directly,
without using the cache. In addition, Icon Mover will not replace icons in
Program Manager GRP files.


Converting icons from any source to ICO format

	   Open the source dialog and select one or more files containing icons.
	   Right-click on an icon and select 'save to ICO file'. If the source
	   is a BMP file, then you will get a chance to scan the bitmap to
	   determine what portion of it to make into an icon. Also decide
	   whether you want the icon to be transparent or not (whether it has a
	   cut-out image or appears square-backed on your screen).

Converting icons from any source to BMP format

	   Open the source dialog and select one or more files containing icons.
	   Right-click on the icon and select 'save to BMP file'.
	   A dialog will prompt for a filename. 
	   The BMP format loses part of the icon called the AND mask, which is
	   used to make a "cutout" of the icon. Icon Mover allows you to retain
	   this AND mask by giving you the option to give the mask an unused
	   color from the color table. If you ever turn this bitmap back into an
	   icon, you can select that color as the color to make transparent. 

Creating icons from bitmaps

	   Open the source dialog and select one or more ".BMP" files. All of
	   the above operations will be accessible; upon extracting, a form will
	   appear which allows you to choose (a) what part of the bitmap to use
	   for the icon, (b) what scale to use, (c) whether you want one of
	   the colors (usually a background color) to be transparent, and (d)  
	   what colors you would like to change, if any. Note that final colors
	   may be different from your choices depending upon your how windows
	   converts your color choices into its palette. Click on CHECK to 
	   see what the icon will look like (especially useful if scaling 
	   or color remapping has been done), OK to accept, or CANCEL.

Capturing icons from the screen (registered version only)

	   Click on a cache icon to replace and use the right-mouse button to
	   drag down the pop-up menu to "capture icon from screen"  OR
	   Click on "File... Capture Icon From Screen" and follow the 
	   instructions. Basically, all you do is run around the screen with
	   the mouse and wherever you stop for more than 2 seconds, an icon
	   is generated for your inspections. This will alll go on in the 
	   background if you wish to open other applications, move windows,
	   or the like.

Rearranging icons in any single file (other than GRP files)

	   Open the file you wish to rearrange both as the source and as the
	   destination. Ensure that the 'Swap Icon on Install' checkbox is
	   checked. Transfer icons via the cache from source to destination.
	   Changes will automatically be reflected in both displays.

Editing icons and bitmaps

	   From either the cache or the destination you may use the
	   pop-up menu to edit an icon. Prior to the first time you
	   edit an icon, use 'Options Editor' to setup the command
	   line for the icon editor of your choice. If your editor has
	   the capability of starting editing from a command line 
	   argument such as "C:\vb\iconwrks myfile.ico" then you will
	   be able to do that from Icon Mover as well. If it can't, then
	   Icon Mover will at least put the temporary file name used 
	   for the editing session in the clipboard. You can use CTRL-V
	   or SHIFT-Insert to retrieve it into your editor. Icon Mover
	   will wait to continue until the editor is closed.

COMMAND LINE OPTIONS
--------------------

You can start up ICONMOVR indicating source and destination files right on
the command line. Use the Program Manager File Run... command. Something
like the following will work:

		   C:\ICONMOVR\ICONMOVR  source.dlx  destin.dlx

These files, of course, can be of any valid format or type. This only loads the
display; it doesn't actually do any icon moving. 

ICONMOVR.INI
------------

Icon Mover will establish an initialization file, ICONMOVR.INI, in
its home directory. It looks something like this:

[Files]
Source=C:\WIN\ACCESSOR.GRP
Destination=C:\VB\__MINE\ICONMOVR\ICONMVR1.FRX
Save=C:\VB\__MINE\ICONMOVR\T2B.ICO
Cache=C:\WINDOWS\ICONCACH.DLX
ICO-type=C:\VB\__MINE\ICONMOVR\T2B.ICO
BMP-type=C:\VB\__MINE\ICONMOVR\TESTING.BMP
DLX-type=C:\WINDOWS\GRPICONS.DLX

[Video]
ColorPlanes=4
Bits/Pixel=1

[DLLs]
ExpansionMinimum=5 icons

[Options]
Display=SHORT DISPLAY
DisplayMaximum=1000
ExpansionMaximum=2400
Editor=C:\VB\ICONWRKS %S

[Registration]
Name=Bob Hanson
SerialNumber=34348397

[Form]
Top=125
Left=300
Height=7000
Width=8000

These items are fairly self-expanatory. You may wish to change the 
cache file designation; it must be an expandable DLL file.
IconMover also worked when ColorPlanes=8 and Bits/Pixel=1. This only
affects the operation of reading and caching *.GRP files. If you find
that your *.GRP files can't be read, send me your ICONMOVR.INI file 
by E-mail and I will try to enhance IconMover to work for your's, too. 

If you move ICONMOVR.EXE to a new home directory, be sure to move
ICONMOVR.INI with it.

SOFTWARE LIMITATIONS
--------------------
Limitations are to display only the first 1000 icons in source files
and only the first 1000 in destination files. Over 400 icons have been 
successfully loaded at once. The number of files allowed as a group of
source files depends upon the length of their filenames. Approximately
300-400 files at once should be no problem. The limitations in terms of
memory required has not been explored or reported.


HARDWARE REQUIREMENTS
---------------------
Any computer capable of running Windows 3.1 should be adequate. 
Since Icon Mover does not use sophisticated Windows API calls which
involve device-dependent bitmaps, it is not screen- or graphics-board 
dependent in any known way. It has been tested on both 386 and 486 
machines having from 4 to 16 Mb of RAM with 16-256 colors and running 
Windows 3.1, Windows 95, or Windows For Workgroups 3.11. 

REGISTRATION
------------
Icon Mover is shareware. It is fully  distributable only in the form of 
ICNMVR30.ZIP. To remove the startup registration screen, to allow
varied names of DLX files, and full screen capture capability,
send US$20 or the equivalent to:

Integrated Graphics
312 Nevada St.
Northfield, MN 55057-2345
USA

Please provide your full E-mail address or regular mail 
address in your request. A valid serial number will be sent
by mail or E-mail. Add $5 for a 3.5" floppy containing the
latest version. A single-user license permits a licensed user to 
execute Icon Mover only on a single computer. Licensed users may 
use the program on different computers as long as there is no 
possibility of it being used at one location while it is being 
used at another, or on a network by more than one user at a time.

FEEDBACK
--------

Much of what you are using is the result of feedback from users of earlier
versions of Icon Mover. Your feedback is greatly appreciated. If there is 
ANYTHING that you don't like or anything that you would like to see, please
E-mail it to me. I can install a newer test version on the St. Olaf College 
ftp site, ftp.stolaf.edu/pub/origami/WIN,  ususally within a day or two. 

Have fun! 

Bob Hanson
Integrated Graphics
312 Nevada St.
Northfield, Minnesota  55057-2345
hansonr@stolaf.edu


