Icon Mover 5.1  Shareware, $25
8/21/97

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
icon and icon-related device-independent bitmaps (16x16 or 32x32) 
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.
  In addition, icons can be extracted from BMP and GIF files of any size
or format OR FROM THE SCREEN by simply "driving" an icon "window" around the
screen, selecting the portion desired as an icon. Bitmaps may be
scaled up or down by a factor up to 16 prior to icon extraction.
  Extracted Icons may be edited, and their colors and bitmask can be
remapped prior to including in other files or libraries. Both 16x16 and
32x32 icons can be edited. As of version 5.1, IconEdit.EXE is not part of
the zip file, as it is no longer necessary.
  Alhough Icon Mover is not an icon editor, per se, it does include an
option (see below) which allows for an external icon editor of your choice.
derived from the Visual Basic freebee is included as ICONEDIT.EXE.
  Icon Mover finds all bitmaps in any file or directory of files, displaying up 
to 1000 at a time, and can read icons from most Windows 3.1 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, GIF, DLL, or
DLX (expandable DLL) files directly by right-clicking on them. A 10-icon
cache is preserved between sessions. Details relating to the icon's type,
location in file, image size, and masking is available from a pop-up menu.
  Icon Mover introduces a completely novel 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 32x32 or 6400 16x16
16-color 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 
simple Icon Mover libraries can be created with a DOS command such as
COPY *.ICO MYLIB.ICO.

REGISTRATION
------------
Icon Mover is shareware. It is fully  distributable only in the form of 
the ZIP file referred to in this document. 
To remove the startup registration screen, to allow
varied names of DLX files, and full screen capture capability,
send US$25 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. 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

CHANGES IMPLEMENTED IN 5.1b
--------------------------
DLX files from previous versions were not readable under Windows '95
by Explorer under 'properties...Program...Change Icon...'
Simply loading any DLX file as source fixes the problem automatically.
(An audible beep will be heard.)


CHANGES IMPLEMENTED IN 5.1
--------------------------
IconEdit is gone. Full, straightforward editing is now part of the
'remap icon' facility.

A bug in 5.0 was fixed relating to remapping monochrome icons.

CHANGES IMPLEMENTED IN 5.0
--------------------------
GIF (Compuserve Graphics Interchange) extract/save capability.

CUR (Windows Monochrome Cursor) extract/save capability.

Full monochrome/16-color/256-color/3K-color/true-color extract capability.

Larger view of single BMP and GIF images; 32x32 view still holds when more
than one image is displayed.

Better save facility allows saving to monochrome, 16-color, and 256-color
formats for any icon, and to the native format (32K-color or true-color)
for high-color BMP files.

Better icon extraction facility, with full multicolor-transparency
capability.

Even better IconEdit.EXE shows image (XOR) mask and AND mask separately
and allows reset and new. Still, not intended as a full-service icon editor.

Icon merge.

CHANGES IMPLEMENTED PRIOR TO 5.0
--------------------------------
See the end of this readme file.


INSTALLATION
------------
ICNMVR51.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 the zip file 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.

Capturing an icon from the screen

	  (registered version only)

	  Prepare the screen by bring the icon of interest to the foreground.
	    Note that Windows control keys will NOT be effective after starting
	    a capture.
	  Return to Icon Mover and click on File...Caption Icon From Screen.
	  Move the cursor to highlight the icon. 
	  Let go of the mouse for a few seconds. The icon will
	    be captured automatically. 
	  Click on OK to place the captured icon in the icon cache or 
	    click on QUIT to abort the capture.

Loading a whole directory of icons into an expandable DLL library

	   (registered version only)

	   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

	   (limited in nonregistered version to one specific DLX file)
	   
	   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.

Saving an icon in a CUR, ICO, BMP, or GIF 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...' or
           from the pop-up menu. 

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 as...'. If the source
           is a BMP or GIF file, or if you choose 16x16 format and the image
           is larger, then you will get a chance to scan the image 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 and GIF formats

	   Open the source dialog and select one or more files containing icons.
           Right-click on the icon and select 'save as...'. BMP and GIF
           formats lose 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 or GIF files.
           All of the above operations will be accessible; double-click on
           the image to extract an icon. 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.

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

	   Open the file you wish to rearrange as the destination.
	   Using the right mouse button, point to a destination
           icon and select from the pop-up menu "rearrange destination icons"
	   Then just point and drag to your heart's content. 

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
ExternalEditor=C:\VB\ICONWRKS %S      (note: in 5.1 this was changed from
                                       just 'Editor'. If you installed an
                                       external editor and want to still
                                       use it, just set 'ExternalEditor'
                                       to read what 'Editor' indicated)
16x16=-1      
32x32=-1
opendelay=0   'seconds; increase if you get a GPF on source double click
Rtmouse=Yes

[Registration]
Name=Bob Hanson
SerialNumber=34348397

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

[capture]
Top=20
Left=300
Size=3

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 or Windows 95 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 x86 and Pentium 
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. 

Following is a list of previous changes/bug fixes made.

CHANGES IMPLEMENTED IN 4.1
--------------------------
Shareware recommended donation now $25.

Full 16x16 16-color icon support. (It's really slick.)

Much better IconEdit.EXE allows working easily with the AND mask.

Show Detail added to the pop-up menu (right-click of mouse)

Show Detail also shows the AND mask. 

Expandable DLL libraries now save 16x16 icons in full, proper form, and
can be read by Windows 3.1 or Windows 95 for Icon Property assignment. I originally
misunderstood the format of 16x16 icon files, not realizing that the AND mask
took 64 bytes (16 32-bit words) rather than 32 bytes (16 16-bit words). In
version 4.0 it was not possible to change the AND mask on 16x16 icons in EXE
files, and, in fact, due to another bug, in some cases it was not possible
to swap 16x16 icons into EXE files at all. Due to the missing 32 (empty)
bytes, older 16x16 icon files created by IconMover could be read only by 
Icon Mover. This is fixed. 

Older DLX files contain 16x16 icons in a 'fake' form anyway--
actually 32x32 in the DLX file itself, with a rough AND mask made on 
the fly. Now all 16x16 icons are saved in 16x16 form with their 
original AND masks intact.

A bug was found relating to the caching of 16x16 icons, whereby Icon Mover
tended to convert them to 32x32 format prior to caching. This is fixed.

CHANGES IMPLEMENTED IN 4.0 
--------------------------

Added 16x16 icon/bitmap capability. You can now choose to search for just
16x16 icons, just 32x32 icons, or both (along with any size bitmaps always).
You can now save 32x32 icons as 16x16 icons. (Whatever part of
the 32x32 icon you wish can be saved.) You can edit 16x16 icons
as you see fit, since they are stored internally as 32x32 
icons, which you can then save again as 16x16 icons. 

Added EXE, DLL, DLX, and cache file icon point-and-drag 
rearrangement. Now you don't need the cache to do 
destination file rearranging. Just drag one icon to another 
to switch, or drag one off the side to send it to the end.

Added CACHE point-and-drag rearrangement. 

File-open delay (was 1 second) removed to INI file. Use only 
if you observe a Windows lock up when double-clicking on underlined
word "Source".
 
Added DLX library selective deletion.
(registered version only)

Added any-file selective extraction.
(registered version only)

bug fix: doubleclick on source caused lockup on some computers...VB/Win3.1 bug 
	 circumvented by adding OpenDelay (default is 0, though, in seconds)
	 set in ICONMOVR.INI to between 0.5 and 1.0 for prevention if needed.
bug fix: bmp extract form was allowing icon-pointer box to go off screen
bug fix: first save to ICO if from BMP offered .BMP extension instead of .ICO

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.


