         ***********************************************************
         * IE - THE COMPLETE ICON EDITOR             (version 1.0) *
         ***********************************************************

					     by Peter Kiem
					        8 Southern Close,
						Chisholm A.C.T. 2905



  DISCLAIMER:

	You have the right to freely use, copy and distribute this program
  as long as the following conditions are met:

	1.  The program and documentation are not modified in any way;
	2.  The program is not used or included in any package for  profit
	  unless written consent from the author is obtained.

	NOTE: The author does not accept any responsibility for any damage
	that might result from the use of this program.

	For a A$20 donation, the source code is available from the  author
  at  the  listed address.  This source code is made available  for  other
  programmers  as  a guide to Amiga programming and is not to be  used  to
  distribute  modified  copies.  If you have  modifications  (improvements 
  etc)  please  send  them to the  author.  These  modifications  will  be
  included  in the  next  version  at  the  author's  discretion  with  an
  appropriate recognition of the programmer in the program messages.



  FROM THE AUTHOR:

	Now we have dispensed with all the boring legal stuff, we can  now
  get down to the interesting stuff:
	I  am a CSO2 programmer with the Commonwealth  Public  Service.  I
  own  an  Amiga 500 with 1 Meg memory, A590 Hard Drive  and  an  external 
  floppy drive.  The compiler I own is Manx Aztec C version 3.6a.
	I  wrote  IE  mainly as an exercise in learning Amiga  C,  but  it
  started  out  with  a dissatisfaction with the  supplied  icon  programs
  (ICONED and ICONMERGE).  I was disgusted with the fact that  dual-render
  icons (icons that change picture when selected) could only be created by
  using ICONED to make two icons and ICONMERGE to join the icons together.
  ICONED also did not allow you to edit the dual-render icons so  created.
  I  also have some large icons from off the public domain which were  too
  large to be edited with ICONED.
	I  then  resolved to create an icon editor with  all  conceiveable
  icon functions with the capability of creating REALLY LARGE  dual-render
  icons.
	I  hope  that you find this program useful and you include  it  on
  your system as a replacement to ICONED.



  FEATURES OF IE:

	IE has the following abilities:

	- Can create icons up to 640x200 pixels.
	- Handles creation and editing of dual-rendered icons.
	- Uses scroll bars for ease of moving around icon bitmap.
	- Icon preview function allows you to see what your icon will look
	  like without leaving the program.  Any changes made to the  icon
	  bitmap can be seen immediately in the preview.
        - Detaches from CLI for background running.
	- Able  to  edit miscellaneous aspects of the icon  including  the
	  aspects edited by the WorkBench menu item "INFO"
		- Icon Type (DISK/DRAWER/PROJECT/TOOL/GARBAGE)
		- Icon Select Highlight (COMPLEMENT/BACKFILL/ALTERNATE PIC)
		- Position of Icon (including FIND BEST POSITION)
		- Stack Size (for project and tool icons)
		- Default Tool (for disk and project icons)
		- Definitions of up to 10 Tool Type strings
		- Size  and  placement of opened window (for  disk,  drawer
                  and garbage icons).
	- Flood fill colouring.
	- Iconify to shrink windows.
	- Write Icon as C Code so your programs can write their own icons.
	  (Can also be used to generate C Code for 2 bitplane images so you
	   can use IE to create gadget images and save them as C Code for
	   inclusion in your programs).



  FEATURES YET TO BE IMPLEMENTED:

	Version 2.0 is in the pipeline for completion when I find the  time
  to finish it.  The proposed features are as follows:

	- A better file requester.
	- Read IFF picture as an icon bitmap.
	- Write icon as IFF picture.  To allow the use of more sophisicated
          packages' editing.
        - Miscellaneous ideas too numerous to mention...



  CALLING IE:

	IE  can  be run from either the workbench or from the CLI.  To  run
  IE from the CLI the following call is used:

	IE [filename]

  where filename is an optional parameter which is the icon to load.
  NOTE:  IT  IS  NOT NECESSARY TO HAVE THE .INFO IN THE FILENAME.  THIS  IS
  REMOVED BEFORE LOADING THE ICON AS THE SYSTEM ROUTINES DON'T LIKE IT.



  ICONIFY FUNCTION:

	By  selecting ICONIFY from the IE menus, all IE windows are  closed
  and  a small window is opened.  This allows you to get IE totally out  of
  the  way temporarily.  This small window can then be dragged to  anywhere
  on  the screen.  To un-iconify IE simply activate the window by  clicking
  the  left  mouse  button  in the window and then click  the  right  mouse
  button.  All IE windows will the be opened in the same place and size  as
  before.



  PREVIEW WINDOW:

	By selecting PREVIEW from the IE menus, a preview window is opened.
  This window displays the icon as it will appear on the workbench  screen.
  By clicking the left mouse button in this window, the icon render  images
  change simulating the action of selecting the icon.



  INFO EDIT WINDOW:

	By selecting EDIT INFO from the IE menus, a info-editing window  is
  opened.  This  window  allows you to change the icon type,  icon  render,
  tool types, default tool and size of opened window amongst other things.



  CHANGING THE BITMAP:

	By clicking the left mouse button in the bitmap display on the left
  side  of the main window, the selected pixel is changed to  the  selected
  colour.  By  holding down the left mouse button and dragging the  pointer
  you  can continuously draw in the bitmap.
	When  the Flood Fill gadget is on, the action of clicking the  left
  mouse  button  will  change  the area colour under  the  pointer  to  the
  selected  colour.  It  probably is a good idea to save your  icon  BEFORE
  doing a flood fill in case the area you selected wasn't properly  bounded
  and  the  flood  fill  does more than  you  think.  Only  horizontal  and
  vertical connections are checked for flood fill (diagonals are  ignored).
	DON'T FORGET TO TURN OFF THE FLOOD FILL GADGET WHEN FINISHED!!!



  MOVING THE ICON BITMAP:

	By  selecting  the arrow gadgets, the icon  image  currently  being
  displayed  is  moved 1 pixel within the bitmap editing display  to  allow
  for expanding the size of the icon.

  


  GENERATING C CODE:

	By  selecting  OUTPUT C CODE from the IE menus, the  icon  data  is
  written to a file of your choice in the C language.
	One use of this is for your programs to generate their own icons.


  The following example shows how to write an icon to a file.  This assumes
  you generated the C Code to a file called "c-code" and are generating the
  icon "test.info":

	#include <exec/types.h>
	#include <intuition/intuition.h>
	#include <workbench/workbench.h>

	#include <functions.h>
	#include "c-code";
	extern struct IconBase *IconBase;

	void main()

	{
	  IconBase = (struct IconBase *)
                     OpenLibrary("icon.library", LIBRARY_VERSION);
	  PutDiskObject("test", &Icon);
	  CloseLibrary(IconBase);
	  exit();
	}

  You  can also use the generated C Code for any-size, 2  bit-plane  image.
  For  example: you can draw the desired gadget pictures for  your  program
  using  the  IE editor, generate the C Code to a file and  use  the  Image
  definitions that were generated for use in your program.  



  FINAL NOTE:

	The  rest of the program I think is quite self explanatory  but  if
  you require any help just contact me and I will help as much as I can.
	I really hope that this program is of use to you and if you like it
  give it to all of your friends.
	Best wishes and happy Iconing...
