[comp.sources.sun] v01i043: Touchup 2.5 - a Sunview bitmap graphics editor, Part 01/07

mcgrew@dartagnan.rutgers.edu (Charles Mcgrew) (07/13/89)

Submitted-by: rayk@sbcs.sunysb.edu 
Posting-number: Volume 1, Issue 43
Archive-name: touchup2.5/part01

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 1 (of 7)."
# Contents:  header.h Makefile README touchup.man temp_image
#   touchup_fonts touchup.icon README_FONTS
# Wrapped by rayk@sboslab3 on Tue Aug 30 00:06:54 1988
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f header.h -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"header.h\"
else
echo shar: Extracting \"header.h\" \(6951 characters\)
sed "s/^X//" >header.h <<'END_OF_header.h'
X
X/**************************************************************************
X   Touchup a bitmap graphics editor for the Sun Workstation running SunView
X   Copyright (c) 1988 by Raymond Kreisel
X   1/22/88 @ Suny Stony Brook
X
X   This program may be redistributed without fee as long as this copyright
X   notice is intact.
X
X==> PLEASE send comments and bug reports to one of the following addresses:
X
X	   Ray Kreisel
X	   CS Dept., SUNY at Stony Brook, Stony Brook NY 11794
X
X	   UUCP: {allegra, philabs, pyramid, research}!sbcs!rayk   
X	   ARPA-Internet: rayk@sbcs.sunysb.edu			
X	   CSnet: rayk@suny-sb
X	   (If nobody is home at any of the above addresses try:
X		S72QKRE@TOWSONVX.BITNET			        )
X
X "If I get home before daylight, I just might get some sleep tonight...."
X
X**************************************************************************/
X/**************************************************************************
X	file: header.h
X	purpose: this file has all of the gobals that need to be defined
X		and the proper include files
X	modifications:
X		date:	Tue Mar 22 22:04:58 EST 1988
X		author:	rayk
X		changes:add comments
X
X		date:	Tue Jun 28 12:34:29 EDT 1988
X		author:	rainier!pell@uunet.UU.NET
X		changes:corrected a declaration error for old_x ....
X**************************************************************************/
X#include <stdio.h>
X#include <strings.h>
X#include <sys/file.h>
X#include <suntool/sunview.h>
X#include <suntool/panel.h>
X#include <suntool/canvas.h>
X#include <suntool/walkmenu.h>
X#include <suntool/scrollbar.h>
X#include <pixrect/pixrect_hs.h>
X
X#define CLEAR 1
X#define NO_CLEAR 0
X
X#define DEFAULT_IMAGE_WID  1152
X#define DEFAULT_IMAGE_HGT  900
X
X
X#define TEXT 0
X#define MAGNIFY 1
X#define SEL_REG 2
X#define GET_PT 3
X#define LASO 4
X#define FFILL 5
X#define PAINT 6
X#define DRAW 7
X#define LINE 8
X#define ERASE 9
X#define RECT_H 10
X#define RECT_F 11
X#define CIRCLE 12
X#define OVAL 13
X#define POLY_H 14
X#define POLY_F 15
X
X#define FLIP_HOR 0
X#define FLIP_VER 1
X#define INVERSE 2
X#define ROTATE 3
X#define COPY 4
X#define SCALE 5
X#define MOVE 6
X#define CUT 7
X#define PASTE 8
X
X#define TRANSPARENT 7
X
X#define PIX_XOR PIX_SRC^PIX_DST
X#define MAX_PTS 3000
X
X#define MIN(x,y) ((x) < (y) ? (x) : (y))
X#define MAX(x,y) ((x) > (y) ? (x) : (y))
X
X#define TEXT_HGT real_font->pf_defaultsize.y
X
X#define MAX_POLY 100
X
X#define BRUSH_NO 7
X
X#define CURSOR_SIZE 22
X#define PATTERN_SIZE 32
X#define PATTERN_NO 40
X
X#define COMMAND_SIZE 48
X#define COMMAND_NO 16
X
X#define MAIN_FONT "/usr/lib/fonts/fixedwidthfonts/screen.r.14"
X
X#define MY_pr_destroy(prect) if (prect) pr_destroy(prect);prect=NULL;
X
X#define MAX_FILE_NAME 120
X
X#define SAVE_ALL 0
X#define SAVE_CUT_PASTE 1
X
X#define LOAD_ALL 0
X#define LOAD_CUT_PASTE 1
X
X#define NILPR ((struct pixrect *)0)
X
X#define PALET_BLOCK 15
X
X#define SCREEN_MAX_X  400
X#define SCREEN_MAX_Y  400
X
Xextern int BW_mode;
Xextern int run_box;
Xextern int paint_brush,line_brush;
Xextern int brush_radius[7];
Xextern unsigned char red[256],green[256],blue[256];
Xextern unsigned char temp_red[256],temp_green[256],temp_blue[256];
Xextern int image_wid,image_hgt,image_depth;
Xextern int top_x,top_y,bottom_x,bottom_y;
Xextern int cur_color,grid_size;
Xextern int magnify_fac,fat_x,fat_y,fat_source_x,fat_source_y;
Xextern int mouse_left,mouse_middle;
Xextern int select_pt_x,select_pt_y;
Xextern int old_x, old_y;
Xextern int start_x, start_y;
Xextern char file_name[MAX_FILE_NAME];
Xextern struct pixrect *cut_buffer_pr,*undo_pr;
Xextern struct pixfont *main_font;
Xextern struct pixrect *brush_temp_pr;
Xextern struct pixrect *pattern[];
Xextern struct pixrect *brushes[];
Xextern struct pr_pos poly_points[];
Xextern struct pr_pos  ptlist[];
X
Xextern struct  pixfont  *real_font;
X
Xextern Frame base_frame,fat_frame,color_frame;
Xextern Frame confirmer;
Xextern Canvas canvas,fat_canvas,color_canvas;
Xextern Pixwin *pw,*fat_pw,*color_pw;
Xextern Scrollbar	vertical_sb, horizontal_sb;
Xextern Panel       panel,fat_panel,color_panel,pattern_panel,
X		brush_panel,region_panel,command_panel, text_panel;
Xextern Panel_item magnify_cycle, command_choice,height_text,width_text;
Xextern Panel_item lasso_remove, text_choice;
Xextern Panel_item file_panel,brush_choice,mono_cycle,save_cycle,
X	msg_string,color_button,border_cycle,view_cycle,current_pattern,
X		load_cycle,pattern_choice,region_choice,grid_cycle,
X		compress_cycle,undo_button,ROP_cycle,yes_button,no_button;
X
Xextern struct pixrect			brush1_pr,brush2_pr,brush3_pr,
X					brush4_pr,brush5_pr,brush6_pr,
X					brush7_pr;
X
Xextern struct pixrect			text_center_pr,text_left_pr,
X					text_right_pr;
X
Xextern struct pixrect			pattern1_pr,pattern2_pr,pattern3_pr,
X					pattern4_pr,pattern5_pr,
X					pattern6_pr,pattern7_pr,
X					pattern8_pr,pattern9_pr,
X					pattern10_pr,
X	     				pattern11_pr,pattern12_pr,pattern13_pr,
X					pattern14_pr,pattern15_pr,
X					pattern16_pr,pattern17_pr,
X					pattern18_pr,pattern19_pr,
X					pattern20_pr,
X	     				pattern21_pr,pattern22_pr,pattern23_pr,
X					pattern24_pr,pattern25_pr,
X					pattern26_pr,pattern27_pr,
X					pattern28_pr,pattern29_pr,
X					pattern30_pr,
X	     				pattern31_pr,pattern32_pr,pattern33_pr,
X					pattern34_pr,pattern35_pr,
X					pattern36_pr,pattern37_pr,
X					pattern38_pr,pattern39_pr,
X					pattern40_pr;
X
Xextern struct pixrect			command1_pr,command2_pr,command3_pr,
X					command4_pr,command5_pr,
X					command6_pr,command7_pr,
X					command8_pr,command9_pr,
X					command10_pr,
X	     				command11_pr,
X					command12_pr,command13_pr,
X					command14_pr,command15_pr,
X					command16_pr;
X
Xextern struct pixrect			reg_command1_pr,reg_command2_pr,
X					reg_command3_pr,reg_command4_pr,
X					reg_command5_pr,reg_command6_pr,
X					reg_command7_pr,reg_command8_pr,
X					reg_command9_pr;
X
Xextern char *malloc();
Xextern quit();
Xextern color_handle_event();
Xextern draw_colormap();
Xextern color_done();
Xextern fat_mode();
Xextern fat_handle_event();
Xextern fat_parms();
Xextern fat_update();
Xextern fat_done();
Xextern handle_event();
Xextern load_file();
Xextern save_file();
Xextern cut_region();
Xextern copy_region();
Xextern paste_region();
Xextern mouse_parms();
Xextern change_parms();
Xextern color_mode();
Xextern undo_screen();
Xextern poly_addpt();
Xextern clear_screen();
Xextern clean_poly();
Xextern confirm();
Xextern draw_circle();
Xextern draw_oval();
Xextern init_colortable();
Xextern command_handle();
Xextern region_handle();
Xextern struct pixrect *my_mem_create();
Xextern rotate_region();
Xextern draw_text();
Xextern fill_mode();
Xextern move_region();
Xextern info_init();
Xextern pattern_define();
Xextern viewer();
Xextern select_pattern();
Xextern char *expand_file_name();
Xextern make_new_name();
Xextern int get_current_ROP();
Xextern resize_canvas();
Xextern return_true();
Xextern return_false();
Xextern change_brush();
Xextern move_box();
X
X#ifdef CHANGE_CURSOR
Xextern Cursor old_cur, draw_cur, erase_cur, ffill_cur, laso_cur,
X		 paint_cur, sel_point_cur, text_cur;
Xextern init_cursors();
Xextern change_cursor();
X#endif
X
X
Xint new_draw_text();
Xint finsih_text();
X
X
END_OF_header.h
if test 6951 -ne `wc -c <header.h`; then
    echo shar: \"header.h\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f Makefile -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"Makefile\"
else
echo shar: Extracting \"Makefile\" \(3558 characters\)
sed "s/^X//" >Makefile <<'END_OF_Makefile'
XCFLAGS = -g -DCHANGE_CURSOR
XOPTIONS = 
XLIBS = -lsuntool -lsunwindow -lpixrect -lm
XEXE = touchup
XOBJ =   ffill.o cms_rainbow.o oval.o circle.o confirmer.o fat.o touchup.o \
X	info.o fonts.o brush.o command.o color_palet.o \
X	disk_io.o pattern.o drawing.o interface.o magnify.o cursor.o
X
X
XSRC =   ffill.c cms_rainbow.c oval.c circle.c confirmer.c fat.c touchup.c \
X	info.c fonts.c brush.c command.c color_palet.c \
X	disk_io.c pattern.c drawing.c magnify.c cursor.c
X
X
XSH_BASE_DIR = /u13/sr/rayk/touchup
XSH_PATTERNS_DIR = pattern_icons
XSH_COMMANDS_DIR = command_icons
X
X
X
X################################################################
X#   change these dirs if you move the files
X################################################################
X# next line must be hard coded if not using csh; no trailing space!
X# remove the comment at the begining of the next line if you are
X# not using csh and set the path to the path of the dir that touchup is in.
X#PWD=/usr/yourlogin/src/touchup	
XBASE_DIR = $(PWD)
XPATTERNS_DIR = $(BASE_DIR)/pattern_icons
XCOMMANDS_DIR = $(BASE_DIR)/command_icons
XINFO_PICTURE = $(BASE_DIR)/info.image
XMAN_PAGE= $(BASE_DIR)/touchup.cat
X###############################################################
X###############################################################
X
X
X$(EXE): .install $(OBJ) touchup.cat
X	$(CC) $(CFLAGS) -o $(EXE) $(OBJ) $(OPTIONS) $(LIBS)
X	strip touchup 			#final version
X
X
Xinterface.o :
X	$(CC) $(CFLAGS)  -c  interface.c -I$(PATTERNS_DIR) $(OPTIONS)
X
Xpattern.o:
X	$(CC) $(CFLAGS)  -c  pattern.c -I$(PATTERNS_DIR) $(OPTIONS)
X
Xbrush.o:
X	$(CC) $(CFLAGS)  -c  brush.c -I$(PATTERNS_DIR) $(OPTIONS)
X
Xcommand.o:
X	$(CC) $(CFLAGS)  -c  command.c -I$(COMMANDS_DIR) $(OPTIONS)
X
Xcursor.o:
X	$(CC) $(CFLAGS)  -c  cursor.c -I$(COMMANDS_DIR) $(OPTIONS)
X
Xfat.o:
X	$(CC) $(CFLAGS)  -c fat.c $(OPTIONS) -DNO_FASTAN
X
Xcircle.o:
X	$(CC) $(CFLAGS)  -c circle.c $(OPTIONS)
X
Xinfo.o:
X	$(CC) $(CFLAGS)  -c info.c $(OPTIONS) -DINFO_IMAGE='"$(INFO_PICTURE)"' -DHELP_FILE='"$(MAN_PAGE)"'
X
Xfonts.o:
X	$(CC) $(CFLAGS)  -c fonts.c $(OPTIONS) -DINSTALL_DIR='"$(BASE_DIR)"'
X
Xtouchup.o:
X	$(CC) $(CFLAGS)  -c touchup.c $(OPTIONS)
X
X
Xtouchup.cat: touchup.man
X	nroff -man $(BASE_DIR)/touchup.man | colcrt -  > $(BASE_DIR)/touchup.cat
X	
X
Xshar: 
X	uuencode info.image info.image > temp_image
X	shar -n1 -e7 header.h Makefile README touchup.man temp_image \
X		     touchup_fonts touchup.icon README_FONTS > touchup.shar1
X	shar -n2 -e7 $(SH_COMMANDS_DIR) \
X		     $(SH_COMMANDS_DIR)/*.cicon \
X		     $(SH_COMMANDS_DIR)/*.cur \
X		     $(SH_COMMANDS_DIR)/strip_icon48x48  > touchup.shar2
X	shar -n3 -e7 $(SH_PATTERNS_DIR) \
X		     $(SH_PATTERNS_DIR)/pattern[1-2]*.icon \
X		     $(SH_PATTERNS_DIR)/strip_icon32x32 > touchup.shar3
X	shar -n4 -e7 $(SH_PATTERNS_DIR)/pattern[3-9]*.icon \
X		     $(SH_PATTERNS_DIR)/brush[1-9].icon > touchup.shar4
X	shar -n5 -e7 [a-d]*.c > touchup.shar5
X	shar -n6 -e7 [e-l]*.c > touchup.shar6
X	shar -n7 -e7 [m-z]*.c > touchup.shar7
X	rm -f temp_image
X
X.install:
X	@echo -n "The pattern directory is :"
X	@echo $(PATTERNS_DIR)
X	@echo -n "The command directory is :"
X	@echo $(COMMANDS_DIR)
X	@echo
X	@echo "if these are incorrect change the defintions in the Makefile"
X	@echo
X	touch info.image
X	chmod 777 info.image
X	uudecode temp_image
X	$(COMMANDS_DIR)/strip_icon48x48 $(COMMANDS_DIR)
X	$(PATTERNS_DIR)/strip_icon32x32 $(PATTERNS_DIR)
X	@echo
X	touch .install
X
Xmy_backup:
X	cp *.sh *.man *.c *.h Makefile backup
X
Xlint_it: $(SRC)
X	lint $(SRC) $(OPTIONS) $(LIBS) -DINFO_IMAGE='"$(INFO_PICTURE)"' -DHELP_FILE='"$(MAN_PAGE)"' -DNO_FASTAN
X
Xclean:; rm -f *.pat *.o
X
END_OF_Makefile
if test 3558 -ne `wc -c <Makefile`; then
    echo shar: \"Makefile\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f README -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"README\"
else
echo shar: Extracting \"README\" \(3636 characters\)
sed "s/^X//" >README <<'END_OF_README'
X/**************************************************************************
X   Touchup a bitmap graphics editor for the Sun Workstation running SunView
X   Copyright (c) 1988 by Raymond Kreisel
X   1/22/88 @ Suny Stony Brook
X
X   This program may be redistributed without fee as long as this copyright
X   notice is intact.
X
X==> PLEASE send comments and bug reports to one of the following addresses:
X
X	   Ray Kreisel
X	   CS Dept., SUNY at Stony Brook, Stony Brook NY 11794
X
X	   UUCP: {allegra, philabs, pyramid, research}!sbcs!rayk   
X	   ARPA-Internet: rayk@sbcs.sunysb.edu			
X	   CSnet: rayk@suny-sb
X	   (If nobody is home at any of the above addresses try:
X		S72QKRE@TOWSONVX.BITNET			        )
X
X "If I get home before daylight, I just might get some sleep tonight...."
X
X**************************************************************************/
X
X
X	Touchup is a public domain bitmap editor for Sun workstations
X	that is very useful for "fixing" screen dumps and doing other
X	types of bitmap editing.  Touchup is a powerful bitmap editor,
X	a few of the capabilities are listed below:
X
X		- paint with different textures
X		- draw circles, rectangles, ovals, lines, and polygons
X		- examine and modify a region at magnification 1-20
X		- use text in many fonts
X		- flood fill an area with a pattern
X		- lasso a free form region within a bitmap
X		- scale-stretch a region of a bitmap
X		- rotate a region
X		- move a region
X
X
XHow to install Touchup
X
X1)  Unpack all of the archive files into the same directory.
X    This should be the directory of final residence for the executable.
X    Be sure to unpack archive 3 before archive 4 so that the proper
X    directories are created.
X
X2)  While in csh, type:
X
X       printenv
X
X    and be sure that the environment variable PWD appears and is set to
X    the current directory; otherwise, you must modify the Makefile, defining
X    PWD explicitly as the full path to the directory in which you have
X    unpacked the files.
X
X3)  Type the following command:
X
X       % make
X
X    On our local Sun 3/280 server, where we install the system in
X    /usr/local/touchup, messages like the following are printed:
X
X       The pattern directory is :/usr/local/touchup/pattern_icons
X       The command directory is :/usr/local/touchup/command_icons
X
X       if these are incorrect change the definitions in the Makefile
X 
X       touch info.image
X       chmod 777 info.image
X       uudecode temp_image
X       /usr/maxwell/local/lib/touchup/strip_icon48x48
X       Stripping circle_h.cicon...
X       Stripping copy.cicon...
X
X           ...
X
X       Stripping pattern40.icon...
X       Stripping brush1.icon...
X       Stripping brush2.icon...
X       Stripping brush3.icon...
X       Stripping brush4.icon...
X       Stripping brush5.icon...
X       Stripping brush6.icon...
X
X
X5)  Install the on-line manual page if desired:
X
X       % cp touchup.man /usr/man/manl/touchup.l
X
X6)  To clean up, you may remove all but the following files:
X
X       touchup*
X       info.image
X       touchup.cat
X       touchup_fonts
X
X7)  To run touchup simply type:
X
X       % touchup
X
XNOTES:
X    There is a standard man page in the file touchup.man
X    or you can just press the "view" button on the upper
X    left hand side of the control panel to display the man page.
X
X    If you are using Touchup on a color Sun you may want to
X    use the -n or -b option (you can read about these in the man page)
X    so the it will run faster.
X
X    Please read the file README_FONTS if you want more fonts in text mode.
X
X     	    revised by R. P. C. Rodgers, UCSF School of Pharmacy,
X            San Francisco, CA 94143 (rodgers@maxwell.mmwb.ucsf.edu)
X
X
END_OF_README
if test 3636 -ne `wc -c <README`; then
    echo shar: \"README\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f touchup.man -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"touchup.man\"
else
echo shar: Extracting \"touchup.man\" \(23346 characters\)
sed "s/^X//" >touchup.man <<'END_OF_touchup.man'
X.TH TOUCHUP 1 "27 July 1988"
X.SH NAME
Xtouchup \- a bitmap graphics editor for Sun raster files
X.SH SYNOPSIS
X.B touchup
X[
X.BI \-x " width"
X] [
X.BI \-y " height"
X] [
X.B \-n
X] [
X.B \-p
X] [
X.B \-f
X] [
X.B \-b
X]
X.SH DESCRIPTION
X.IX "touchup command"  ""  "\fLtouchup\fP \(em bitmap editor"
X.IX edit  bitmaps
X.IX "screen bitmaps"  edit
X.LP
X.I Touchup
Xis an editor for bitmap raster files in Sun 
X.IR rasterfile (5)
Xformat
X.SH OPTIONS
X.TP
X.BI \-x " width"
XUse
X.I width
Xas the width of the drawing area (default: 1152 pixels).
X.TP
X.BI \-y " height"
XUse
X.I height
Xas the height of the drawing area (default: 900 pixels).
X.TP
X.B \-n
XDisable the
X.I undo
Xcommand so that
X.I touchup
Xrequires less memory.
XThe use of this option will make the color version much more usable for
Xmachines with only 4 megabytes of main memory.
X.TP
X.B \-p
XStart \fItouchup\fP with a drawing area of 900x1152.
XThese dimensions are more suitable for printing images,
Xas the drawing area is in proportion to the standard American 8.5 by 11 inch
Xpaper size.
X.TP
X.B \-f
XThis option will force \fItouchup\fP to use the default foreground
Xand background colors instead of the foreground and background
Xcolor of the image the is load from a file.
X.TP
X.B \-b
XRun \fItouchup\fP in Black & White mode. This option is useful when you
Xwant to use a color Sun to edit monochrome bitmaps. The use of this
Xoption will also make the color version much more usable for
Xmachines with only 4 megabytes of main memory.
X.SH COMMANDS
X.LP
XTo edit a bitmap, type `\fBtouchup\fP'.  
XA \fIraster file\fP (5)
Xfile name may be typed into the file name field once the program has started.
XIf it exists, the \fIraster file\fP must be in \fISun Rasterfile\fP\^(5) format.
XWhen the program starts, it displays a single large window containing
Xfive subwindows.  From top to bottom, the five subwindows are:
X.SS "OPTION SUBWINDOW"
X.LP
XThe option subwindow presents global parameters for the
Xentire drawing area operations for loading and saving files.
XThe bottom line of this window is a message subwindow, which displays
Xmessages, prompts, and warnings.  The selectable options are:
X.RS
X.IP "\fBFile name:\fP" 10
XThe file name of the current bitmap.  The ESC key can be used to do
Xstandard
X.IR csh (1)
Xfile name completion.
X.IP "\fB(Load)\fP" 10
XLoad the raster file specified in the file name field.
X.RS
X.IP "\fBLoad:Cut/Paste buffer\fP" 10
XLoad a raster file into the Cut/Paste buffer, where it can be previewed
Xwith the
X.B view
Xfeature.  When a color image is loaded in the Cut/Paste buffer the color map for
Xthat image is lost. The color map is only loaded in when a color image is
Xloaded into the drawing area, with option
X.BR Load:entire image .
X.IP "\fBLoad:entire image\fP" 10
XLoad a raster file into the drawing area and restrict the size of the drawing
Xarea to the size of the raster file.  If the image has depth greater than
Xone then load the color map.
X.RE
X.IP "\fB(Save)\fP"
XSave the current raster image in the file specified in the file name field:
X.RS
X.IP "\fBSave:Cut/Paste buffer\fP" 10
XSave only the current Cut/Paste buffer.
X.IP "\fBSave:entire image\fP" 10
XSave the image in the drawing area.
X.IP "\fBSave:standard format\fP" 10
XSave the drawing area image in standard Sun
X.IR rasterfile (5)
Xformat.
X.IP "\fBSave:standard format\fP" 10
XWhen the save cycle is set to this mode the current image
Xwill be saved out in the standard Sun raster file format.
X.IP "\fBSave:Byte_Encoded\fP" 10
XSave the drawing area image in Sun
X.IR rasterfile (5)
XBYTE_ENCODED format.  This can compress the file by as much as one half,
Xbut such a file is not readable by the
X.B screenload
Xcommand.
X.RE
X.IP "\fB(Quit)\fP"
XQuit the program.
X.IP "\fBGrid: (none 5 10 15 20 25 30)\fP"
XForce every bitmap operation to the closest grid point
X(when grid value is greater than zero).  The number following
X.B Grid
Xis the number of pixels between each grid point (the actual grid is not
Xvisible).
X.IP "\fBBitmap OP: default\fP"
XThe BITMAP OP setting determines what boolean operation is to be performed
Xbetween the drawing primitive and the destination bitmap. The possible
Xboolean operations are default, which uses default settings for each
Xcommand, XOR which does a exclusive-or (invert), AND which will do
Xa AND between the bits in the drawing area and the ones you are drawing,
XOR which will just set bits in the drawing area but not rest any bits,
Xand SRC, which will just copy the source drawing directly on to the
Xdrawing area.
XFor example,
Xif you wanted to place white text in to a black region of the drawing area.
XYou would first set BITMAP OP to XOR (exclusive or) and do the normal
Xcommands to place text in the drawing area.
X.IP "\fB(undo)\fP"
XWhen this button is pressed the last operation effecting the drawing
Xarea will be removed. If this button is pressed again, the last
Xoperation effecting the drawing area will be redisplayed.
XAlso if you hold down the "shift" key and press the middle mouse
Xbutton it will have the same effect as pressing the "undo" button.
X.IP "\fB(view)\fP"
XWhen this button is pressed a window will be displayed containing
Xone of three possible images, depending on the "view" cycle.
X.IP "\fBview:man page\fP"
XThis will set the view to the manual page entry for
X.IR Touchup ,
Xso that when
Xthe "view" button is pressed, a window containing the manual page
Xwill be displayed.
X.IP "\fBview:Cut/Paste\fP"
XThis will set the view to the current Cut/Paste buffer, so that when
Xthe "view" button is pressed, a window with current Cut/Paste buffer
Xwill be displayed.
X.IP "\fBview:Touchup info\fP"
XThis will set the view to the copyright notice for
X.IR Touchup ,
Xso that when
Xthe "view" button is pressed, a window with the copyright notice
Xwill appear.
X.IP "\fB(resize)\fP"
XWhen this button is pressed the current value of the "height" and "width"
Xfields will be used to resize the drawing area.  For example if you want to
Xchange the drawing area to a space of 512 by 512 pixels, you would simple
Xselect the "height" field and type in 512 and then select the "width" field
Xand type 512 then press the "resize" button.
X.IP "\fBHeight: xxx\fP"
XThis field displays the current height of the drawing area in pixels.
XIf you press the LEFT mouse button while on top of this field, you
Xcan type in a new value for this field.
X.IP "\fBWidth: xxx\fP"
XThis field displays the current width of the drawing area in pixels.
X.IP "\fBBorders:Yes\fP"
XThis cycle determines is borders are drawn on filled rectangles
Xand filled polygons.
X.IP "\fBDraw color:Black\fP"
XThis cycle determines the color for DRAWing points, the border of
Xfilled reactangles, the border of filled polygons, and lines.
XThis option is ONLY available when you are running in on a mono Sun or
Xwhen you are in Black & White mode.
X.IP "\fB(color)\fP"
XWhen \fBtouchup\fP is run on a color Sun this button will become visible.
XWhen the "color" button is pressed the current colormap will be displayed,
Xalong will the colormap editor.  At the top of this window is the number of
Xthe currently selected color and the RGB values for that color. When
Xyou change the RGB values, by moving the sliders, the current color will
Xdynamicly be changed.
X.IP "\fB(color) (Load)\fP"
XOnce the Color Palette is displayed you can
Xload a colormap from a file by pressing the "Load" button on the 
XColor Palette window. The colormap will be loaded from the filename that
Xdisplayed just under the "Load" button.
X.IP "\fB(color) (Save)\fP"
XOnce the Color Palette is displayed you can
Xsave just the colormap to a file by pressing the "Save" button on the 
XColor Palette window. The colormap will be saved to the filename that
Xdisplayed just under the "Save" button.
X.IP "\fB(color) Filename:\fP"
XThe filename that colormaps are loaded from and saved to.
X.IP "\fBlasso clear:X\fP"
XIf this option is turned on (it is turned on by default),
Xthen when a region is selected
Xwith the LASSO it will first copy the region to the Cut/Paste
Xbuffer and then it will clear the selected region.  If you place the
Xmouse on top of the box after "lasso clear" and press the LEFT mouse
Xbutton you can toggle this
Xoption on and off.  When this option is turned off the region that
Xselected by LASSO is not cleared.
X.IP "\fBMessages\fP"
XThe bottom line of this window is a message subwindow, which displays
Xmessages, prompts, and warnings.
X.RE
X.RE
X.SS "PATTERN SUBWINDOW"
X.LP
XThe pattern subwindow, the subwindow on the lefthand edge of the main window,
Xis the pattern subwindow.  This subwindow contains all of the paint
Xand fill patterns that can be used to draw pictures.
XThe current pattern is selected by placing the mouse cursor on top of
Xthe pattern that you want and pressing the LEFT mouse button.
X.IP "\fB(Define pattern)\fP"
XTo select a region on the drawing area as a new paint pattern: 1) select
Xthe point at the center of the region, with the SELECT POINT command; 2) press
X.BR "Define pattern" .
X.SS "COMMAND SUBWINDOW"
X.LP
XThe command subwindow is the one that
Xis on the right hand side of the main window. To select a command place the
Xthe mouse cursor on top of the command that you want and press the LEFT
Xmouse button.
X.IP "\fBTEXT\fP" 10
XAfter you have selected the TEXT command, the ABC icon,
Xmove to the drawing area and press the LEFT mouse button where
Xyou want to place the text, then type your text string.
XOnce you enter TEXT mode, the TEXT options will be displayed in the
XEXTRA COMMAND SUBWINDOW in lower righthand corner.
XThe icons in this window will allow you to choose either CENTERED,
XLEFT JUSTIFIED, or RIGHT JUSTIFIED text. By clicking the LEFT mouse button
Xon the different page images, the page formatting for text input will be set.
XUnder the page images are the "fonts" button
Xand the "pt size" button.  When the "fonts" button is pressed a list
Xof the current fonts will be displayed and the selected item will
Xbecome the current font.  Each font has a list of the possible point sizes
Xwhich can be accessed from the "pt size" or point size button.  When this
Xbutton is pressed the list of the point sizes for the current font will
Xbe displayed and you can pick one size from the list.
X.IP "\fBMAGNIFY\fP" 10
XFirst use the SELECT POINT command to select a point within the drawing area that
Xyou wish to look at in detail.  Then press the command icon for MAGNIFY
Xand a new subwindow with a magnified view of the selected area will be displayed.
XIn the top line of the MAGNIFY subwindow you can set the magnification to any
Xvalue between one and twenty.  When the mouse cursor is within the magnified
Xdrawing area, there are three possible commands.  The LEFT mouse button will
Xchange the current bit to the opposite color and then continue to draw in
Xthat color.  When the MIDDLE mouse button is held down and moved, it will change
Xthe area of the bitmap that is magnified.  When you are editing color images
Xthe RIGHT mouse button will change the current drawing color to the color of
Xthe pixel the mouse cursor is on top of.
X.IP "\fBSELECT REGION\fP" 10
XFirst click the picture of the box made of dotted lines.
XThen move to the drawing area and press the LEFT button when
Xthe cursor is at the desired position and continue to hold the
XLEFT button down while you drag the box to the opposite corner of the
Xregion you wish to select.
XIf you double click SELECT REGION then the entire drawing area will be
Xselected.
XIf you need to select an area bigger than the drawing window,
Xfirst select one of the corners of the region with the LEFT mouse
Xbutton.  Then scroll the window so that the other corner of the
Xregion you want is now visible.  Place the cursor on top of the
Xother corner of the region you want and press the the MIDDLE
Xmouse button.
X.IP "\fBSELECT POINT\fP" 10
XFirst click the picture of the cross hairs.
XThen press the LEFT mouse button down and a cross hair
Xwill appear; move the mouse while holding the LEFT mouse button down and the
Xcross hair will follow it. Releasing the
Xthe button will leave the cross hair.
X.IP "\fBLASSO\fP"
XFirst select the picture of the LASSO, (right above the paint brush), then
Xmove the mouse to the drawing area.  To LASSO a object hold down the LEFT mouse
Xbutton and encircle the object that you wish to capture while the LEFT
Xbutton is pressed.  When you let go of the LEFT mouse button the selected
Xobject will first be highlighted and then it will be copied into the Cut/Paste
Xbuffer. Then you will be placed into MOVE mode, this function is documented
Xin the Cut/Paste buffer operations section.
X.IP "FLOOD FILL\fP"
XFirst select a point on the drawing area that is inside a closed polygon region.
XWhen the FLOOD FILL
Xicon is pressed, it will start at the selected point and
Xfill outward until it hits a border with the currently selected pattern.
X.IP "\fBPAINT\fP"
XOnce the PAINT command is selected, whenever the LEFT mouse button is pressed,
Xa region of the drawing area will be painted with the current pattern and
Xthe size of this region will be determined by the current brush size.
XWhenever the paint command is selected a brush menu will appear in the window
Xbelow the command subwindow. The current brush size can be set by placing the
Xcursor on top of a brush size within the brush menu and pressing the LEFT
Xmouse button.
X.IP "\fBDRAW\fP"
XOnce this command is selected, whenever the LEFT mouse button is pressed within the
Xdrawing area a single pixel of the current DRAW COLOR will be placed at
Xthe location of the mouse cursor.
X.IP "\fBLINE\fP"
XWhen this command is selected, a line thickness menu will appear in the
Xlower righthand window. First select the thickness of the line, then
Xselect the pattern, from the pattern menu, that the thick line will
Xbe filled with.
XThen the left button down marks the end point of a
Xline; moving with the button down
Xrubber bands a line; releasing button
Xdraws the line with the current thickness and current fill pattern.
X.IP "\fBERASE\fP"
XPressing the LEFT button down will ERASE a small square region and
Xmoving with the button down will 
Xcontinue ERASing until the LEFT button
Xis released. If a region is already selected when the ERASE icon is pressed
Xthe specified region will be erased. If you double click the ERASE icon the
Xentire drawing area will be erased.
X.IP "\fBRECTANGLE\fP"
XWhen this command is selected, a border thickness menu will appear in the
Xlower righthand window. First select the thickness of the border, then
Xselect the pattern, from the pattern menu, that the borders will
Xbe filled with.
XThe left button down marks one corner of the rectangle
X; moving with the button down
Xrubber bands a rectangle; releasing button
Xdraws the rectangle with the current thickness and current fill pattern.
X.IP "\fBRECTANGLE Filled\fP"
XLike \fBLINE\fP except draws a rectangle that is filled with the currently
Xselected pattern, from the pattern menu.
X.IP "\fBCIRCLE\fP"
XMove the mouse cursor to the center of the circle that you with to draw
Xand hold down the LEFT mouse button, then while continuing to hold the LEFT
Xmouse button down extend the cursor to the radius of the circle that you want
Xand then release the LEFT mouse button.
X.IP "\fBOVAL\fP"
XLike \fBCIRCLE\fP except draws a oval.
X.IP "\fBPOLYGON\fP"
XOnce this command is selected, move to the drawing area and press the LEFT mouse
Xbutton when the cursor is at the first vertex of the polygon that
Xyou wish to draw.  Then continue to use the LEFT mouse button to select vertices
Xof the polygon.  When you have selected all of the vertice that you want, press
Xthe RIGHT button to close the polygon.
X.IP "\POLYGON FILLED\fP"
XLike \fBPOLYGON\fP except it fills the polygon with the currently selected
Xpattern from the pattern subwindow.
X.SS "EXTRA COMMAND SUBWINDOW"
X.LP
XThe subwindow below the command subwindow, is the extra command subwindow.  There are two possible
Xwindows that will appear within this subwindow, the first is the brush size,
Xline size, rectangle size menu
Xwhich is described in the commands above documentation.  The other menu that
Xwill appear in this subwindow is the Cut/Paste buffer command menu.
XThis subwindow will only be visible when the
X.B SELECT REGION
Xcommand is pressed.
XThis menu has the following commands.
X.IP "\fBMIRROR\fP"
XThis command will create a mirror image of the currently
Xselected region.
X.IP "\fBFLIP\fP"
XThis command will FLIP the currently selected region upside down.
X.IP "\fBINVERSE\fP"
XThis command will INVERSE the currently selected region.
X.IP "\fBROTATE\fP"
XThis command will ROTATE the currently selected region ninity degree
Xclockwise.
X.IP "\fBCOPY\fP"
XThis command will place a copy of the currently selected region into the
XCut/Paste buffer.
X.IP "\fBSCALE\fP"
XFirst use either COPY, CUT, or Load:Cut/Paste buffer to put an image into
Xthe current Cut/Paste buffer.  Then press SELECT REGION so that you will
Xin the correct mode.  Now hold down the LEFT mouse button and select
Xthe destination region for the Cut/Paste buffer.  If the size of the
Xdestination region is different from the size of the original image
Xthen the image will be SCALED to the fix into the destination area.
XIn this way the SCALE command can be used to enlarge, shrink, and stretch
Ximages.
X.IP "\fBMOVE\fP"
XFirst use either COPY, CUT, or Load:Cut/Paste buffer to put an image into
Xthe current Cut/Paste buffer.  Once the MOVE command has been selected,
Xmove the mouse to the drawing area and hold down the RIGHT mouse button.
XAs long as the RIGHT mouse button is held down, you can position the image
Xwhere you like.  Then let go of the RIGHT mouse button to place a copy of
Xthe image on the drawing area.
XNOTE: If you are using the MOVE command with a color image you will
Xprobably want to set the "Bitmap OP" to "SRC" so that the colors are
Xnot messed up when the Cut/Paste buffer is copied onto the bitmap.
X.IP "\fBCUT\fP"
XThis command will place a copy of the currently selected region into the
XCut/Paste buffer and then it will fill the selected region with the
Xcurrently selected pattern.
X.IP "\fBPASTE\fP"
XFirst use the SELECT POINT command to select the upper right hand corner
Xof where you wish to place the Cut/Paste buffer.  Then press the PASTE
Xcommand icon and the contents of the current Cut/Paste buffer will be copied
Xto the drawing area.
XNOTE: If you are using the PASTE command with a color image you will
Xprobabilly want to set the "Bitmap OP" to "SRC" so that the colors are
Xnot messed up when the Cut/Paste buffer is copied onto the bitmap.
X.IP "5)" 5
XThe last subwindow is the drawing area, which is in the center of the main
Xwindow.
X.RE
X.SH "PRINTING FILES:"
X.LP
XSave a image out to a file and use the following Unix command to
Xdump the image to a full page picture on an Apple Laser Writer or any
Xother PostScript laser printer, where
X\fItfile\fP is the file name of an image created in
X.IR Touchup .
XThe program 
X.IR pssun(1) ,
Xfrom Adobe Systems, Inc. will read in a Sun rasterfile and convert it
Xto PostScript.  There is a similar public domain program call
X.IR suntops(1) ,
Xthat will convert Sun rasterfiles to PostScript.
X
X.LP
XWhen the picture is wider than it is high use the following command:
X.br
X.ti 1.0i
X% pssun -s 8 10.5 -r tfile | lpr -Plw 
X.LP
XWhen the picture is higher than it is wide use this command:
X.br
X.ti 1.0i
X% pssun -s 8 10.5 tfile | lpr -Plw 
X.LP
XWhen the picture is part of a document use this command:
X.br
X.ti 1.0i
X% pssun -S 6 -l 1.5 3 tfile | lpr -Plw 
X.LP
XImages can also to sent to a IMPRESS laser printers with a command
Xsimilar to the following, where "/u5/sr/local/bin/imPf2" is the location
Xof the INPRINT program and "newcanon" is the name of the IMPRESS laser printer.
X.br
X.ti 1.0i   
X% cat file_name | /u5/sr/local/bin/imPf2 | lpr -Pnewcanon
X.SH "TYPICAL QUESTIONS:"
X.IP "\fBHow do I select an area bigger than the drawing window ???\fP" 5
X.LP
XFirst go to SELECT REGION mode then select one of the corners of the region with the LEFT mouse
Xbutton.  Then scroll the drawing area subwindow so that the other corner of the
Xregion you want is now visible.  Place the cursor on top of the
Xother corner of the region you want and press the the MIDDLE
Xmouse button.
X.IP "\fBHow do I merge two different pictures in to one picture ???\fP" 5
X.LP
XWhen booting up
X.IR Touchup ,
Xthe default drawing area is 1152 x 900,
Xwhich is the full screen size of the Sun graphics screen.  When
Xyou load a new picture
Xthe drawing area is restricted to the size of the picture that you loaded.
XWhat you need to do is start up
X.I Touchup
Xand load the first picture
Xinto the Cut/Paste buffer by changing the cycle next to the load
Xbutton from "Load: Entire image" to "Load: Cut/Paste buffer" and then
Xpress the load button.  The file will then be in the cut/paste
Xbuffer and you can PASTE it or MOVE it to where ever you like.
XThen load the second picture into the Cut/Paste buffer and PASTE that
Xpicture whereever you like.
X.IP "\fBHow do I make part of a picture into an icon ???\fP" 5
X.IP "\fBHow do I convert other image format to Sun rasterfile format ???\fP" 5
X.IP "\fBHow do I convert Sun rasterfile format to other image formats ???\fP" 5
X.LP
XUse a program such as the \fIThe Portable Bitmap Toolkit\fP by Jef
XPoskanzer(jef@lbl-rtsg.arpa)
XThis can be obtained by an
X.IR ftp (1)
Xto expo.lcs.mit.edu (18.30.0.212) for the file contrib/pbm.tar.Z,
XI also have a copy rolled out on tape if you do not have
Xaccess to the internet.  There is also a large collection of bitmaps
Xat expo.lcs.mit.edu in contrib/poskbitmaptars which can be converted
Xto Sun rasterfile format with the \fIThe Portable Bitmap Toolkit\fP
Xfor use in
X.IR Touchup.
X.IP "\fBWhat does SAVE Byte_Encoded mean ???\fP" 5
X.LP
XThis means that the image will be saved out in the Sun
X.IR rasterfile (5)
XBYTE_ENCODED format.  This will often compress the file to one half
Xof the normal size. One of the problems with saving a file in compressed
Xformat is that 
X.IR screenload (1)
Xcommand will then not be able to read the file.
X.IP "\fBHow do I edit bit maps that are 1 bit deep on a color Sun ???\fP" 5
X.LP
XUse the -b commandline option, this option is described at the beginning of
Xthis manual page.
X.SH FILES
X.TP
X.I /usr/include/rasterfile.h\fP
XSun rasterfile format
X.SH SEE ALSO
Xiconedit(1),
Xpssun(1),
Xrasterfile(5),
Xrastps(1),
Xscreendump(1),
Xsceeenload(1),
Xsuntops(1),
Xsuntools(1)
X.SH BUGS
X.LP
XIf you try to 
X.B "FLOOD FILL"
Xan area that has a VERY complex pattern and covers
Xa large area it is possible to overflow the stack and cause a core dump.
X.LP
XTouchup runs very slowly in color mode on Suns with less then 16 megabytes
Xof main memory.
X.LP
XWhen the SELECT REGION command is used on a Sun 3/160 with a Graphic processor
Xboard there is some garbage left on the display, but it is not actually
Xleft in the drawing area. If you press the RIGHT mouse button while on
Xthe frame of the window and select "refresh" the display will be corrected.
X.SH Author
X Ray Kreisel
X Computer Science Department
X SUNY at Stony Brook
X Stony Brook NY 11794
X.LP
X PLEASE send comments and bug reports to one of the following addresses:
X
X UUCP: {allegra, philabs, pyramid, research}!sbcs!rayk   
X ARPA-Internet: rayk@sbcs.sunysb.edu
X CSnet: rayk@suny-sb
X (If nobody is home at any of the above addresses try:
X	S72QKRE@TOWSONVX.BITNET       )
X.fi
X.LP
X"If I get home before daylight, I just might get some sleep tonight...."
X.LP
XManual page revised by R. P. C. Rodgers, UCSF School of Pharmacy,
XSan Francisco, CA 94143 (rodgers@maxwell.mmwb.ucsf.edu)
X
X
END_OF_touchup.man
if test 23346 -ne `wc -c <touchup.man`; then
    echo shar: \"touchup.man\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f temp_image -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"temp_image\"
else
echo shar: Extracting \"temp_image\" \(14425 characters\)
sed "s/^X//" >temp_image <<'END_OF_temp_image'
Xbegin 777 info.image
XM6:9JE0   8    #9     0  *+     !                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                               !_P                          
XM                                   /_^                      
XM                                       ;__@                 
XM                                           ___X             
XM                                              #____         
XM                                                  '___]     
XM                                                    & /_^__X
XM                                                       #_^/_
XM___\                                                       /
XMM_O____[                                                    
XM   =?V______P                                               
XM       [________L                                           
XM           W_________                                       
XM              !O_O______]                                   
XM                  #__________                               
XM                      '?_________                           
XM                          /__________@                      
XM                              =__________@                  
XM                                  W]_________X              
XM                                      _[_________\          
XM                                         #OW_________^      
XM                                             #?O_________^  
XM                                                 &_?________
XM__                                                   /^_____
XM_____^@                                                  /__
XM__________@                                                 
XM ^____________@                                             
XM    !]____________@                                         
XM        #_]___________@                                     
XM            /W____________P                                 
XM                /O____________P                             
XM                    >__[__________@                         
XM                        ]_]___________P        &            
XM $  P!   ( "   @.!P.       !__[_____]7____@  '\    "     !T 
XM     $  0!   0 !  !@1"(1       #________7^____P  $D    "    
XM ",         0!   @  @ "@@B(1       #_____^_]^_____@  $D.&,.B
XMXQFX $$.&XYVX<!V7'X  @.@@  @@B(1       '__W]_KW____^__P   @1
XM"$1C$0C$ $ 1#$0C$$",8A  ! 1@0  @@CX?       /__?__:O___]M__@ 
XM  @@B$@B$0B" $ @B"0B $$$0A  ! @@0  @1B(1       /^^__^W?_____
XM__X   @@B$@"$0B" $ @B")" $$$0A  ! @ 0  @.D$@@      ?_]___H[>
XM_^W___X   @@B$@"$0B" $ @B")" $$$0A  ! @ 0  @ D$@@      ?_[_[
XM^7N_______^   @@B$@"$0B" $"@B"&" $$$0A  ! @ 0  @!$$@@      _
XM___O]I3__[_?__]   @1",0B$1C$ "$1#$&" $",0A$  @0@@  @#&,Q@   
XM   __?_?_2N_]7M____@ #X.!V/'..RX !X."X$'@?!TYPX  @/ @ #X<#X?
XM       __]^_ZJUO___]___@          "     " $    $     0 !    
XM           ___[_VA*[?_?[___X          "     " (    $     ( "
XM               __?__NJ=6__[7___X          "     " (    (    
XM                   _____= BM]=V____V          '     ' \   #P
XM                       __]WMZ2-;W[OW___^                    
XM                           ___O?L@0JNW>O___^                
XM                               __W__9 %+;M]]O___            
XM                                   ?_^^]J"B2J[;K___^@       
XM                                       ____W4  E77W?____@   
XM                                           ___UNH0"(4_?_____
XM0    @(!                     @   <             __^O]0@ !#*];
XM____@..  @(!     'P   _     XP   @   $             ____?5  (
XM(UKW____0$$   (!     "(   0@    0@       $             ___]T
XM@   "%>O____@$DW#@_'X.&X "(YP 0AXYP 1&X.#@?AP$             _
XM_^O_4   00C____^@$D8@@(! 1#$ "(0@ 0B$0@ 2#$1 @@B($          
XM  !___]JA    B,O____ %40 @(! @B$ #P0@ ? $0@ 6" @@@@$$$      
XM      !____]$  $"$A;___^ %40 @(! _B$ "()  2!\)  :" _@@<'\$  
XM          !___[:($  (@*W___\ "(0 @(! @"$ "$)  1"$)  1" @ @#$
XM $            !___WT@@$@1%1/___^ "(0 @(! @"$ "$&  1$$&  1" @
XM @ D $            !____:I ( @($J___^ "(0 @(A$0B$ "$&  0D,&  
XM0B 0@@@B$$            !___^U"  ! A1+O__\ "(\#X' X/'. 'X$  XS
XMV$  YW@/#X_!X?            !___WZ( 0 !$$E?__^               $
XM     $                        !___^D@ @  )1*___\            
XM   (     (                        #____Z(  " @%5___^        
XM       (     (                        '___ZDB@ $$*H)/__\    
XM           \     \                        /___W:4$ ( @"RW__\
XM                                              /___]I     "4E
XM/__^                                              /___K6ZH( 
XM!$A)=__]                                              ?___^Z
XMD!  "(*VW___                                              ?_
XM__JM2Z   !2)=___                                            
XM  ____[[500  "$_K___@                                       
XM      ____6MJG$  ([K?___0                                   
XM         !___^[U*HH  3%6^_]_P                               
XM             '___]VJ060  $ZM]___0                           
XM                 '____KH A2  I%;____@                       
XM                     /____>2 $$ !&ZE=[]?0                   
XM                         /_[_^SD0 H $(@)[W_^P               
XM                             /____N0"H  (1 27O__P           
XM                                 /___^ZDI*  0B"!O_^_@       
XM                                     /____F)6TD@!  "?_]W8   
XM                                         /___^\@KJ! 4$JHK]__
XMX                                            /___]E+5<H !)%"
XM7[[?T                                            /___O8"KY"@
XMJ2]8O_W_\                                            ?___]JJ
XMK*$%$ENE?_O_H                                            ?_]
XM__4"6XQ0:)=:5___^                                           
XM ____]HHA2$DDRNJK___\                                       
XM     ____[5"* B@))]=/_O_Z                                   
XM         _____0(@)%)62*J5____                               
XM             ____^M1  $24 U4K_[_]                           
XM                 ____U0B 1)@*! "G____                       
XM                     ____^U $B2$TH!5-___^                   
XM                         ____]J$( %1*@ $K___]               
XM                             ____[000DJ$5!"17____           
XM                                 ?___VE!!!$I44 E+___^       
XM                                     ?___^H*"$2@5@( K___]   
XM                                         ?___=50( E*J$BE7___
XM_!_P"                #   !A  0 $8  @ &       '___^R 0)*0MH  
XMK___]!)0"                !    A  0 $(  @ "       '__^ZHB @)"
XM2!(*6___^ (0                 !    @  0  (  @ "       '____6(
XM! J0FJ"A5___] (6.#P#8V.&VQRH J'.X!8< &G!Y\V<+,SXX:       '__
XM_\P@(!0 * 0$K___Z (9"$0!D91)C()4 5 D0!DB )A"(09$,D0A$F      
XM '___;M  !% %I$I/___^ (1"# !$01(B!Y4 5'D0!$^ (A!@00$(D0A\B  
XM     '____2  "0 5   K___Z (1" @!$01(B")4 5(B@!$@ (A 000$(D0A
XM B       '___ZH   D "P(E7___\ (1"$0!D01)B")4 5(B@!DB )A"(00$
XM,DPA$F       #___W5  %  *@! M___P ^[OG@!8X.&G!U4 5'1 #8< &WS
XMP,X?;#88X;       #___>T   ) 10 "K___P      !    @      !    
XM                     #___]H  %  B@ $7___P      !    @      "
XM                         !____2   ) $4  K___T      #@  '    
XM   /                         ![__ZT( !2!) !)7___X           
XM                                  W__O@  "" 00  O___@       
XM                                      ?__]40(D4E5  !+___8   
XM                                          -___I   @(HH ">___
XM@                                             '__V2  %(A%  $
XME__^@                                             !___H  I1$
XM54  ?__]                                              !O_]2 
XM)&" BH !*__V                                               ?
XM_W4!29T!-20*7_^L                                            
XM   ?_]H*$F ""LB M_YH  @   ",       @1@  !  .        <       
XM       7_W1 U95052 "K_T   @   "$       @0@  !  0        $   
XM           ?_ND+)6BBE5H$O_P   @   "$        0@  !  0        
XM$              ?_]I$RH$%*N2A5_@  #XX ./EAQL/ .[A\L.9GP!\<.  
XM!P\ $'-AL </       ?__2+*B0(11L%;_P   A$ 1"&2(R1 $0@0R1(A  0
XMB1   )$ $(F28 "1       ?_U4$5,@ F63"G_@   A$ 1"$3X@, %0@0B1(
XMA  0^?  !XP $(D2( >,       /_OHIH0$!(JL4N_@   A$ 1"$2 @" %0@
XM0B1(A  0@0  "(( $(D2( B"       /_^2*'JHH2E5A=_    A$ 1"$2(@1
XM "@@0B1)A  0B1# ")$ $(D28 B1       /_?TI8$!"E*K%K_@   8X .!N
XMYQP> "CX-W.&PP!\<.! !UX ?'.YH =>       -_^I2#H2(*5$B__      
XM                      !         (          /__4D%  !0M+55^  
XM                          "         (          ?_]J(A4  !4$K
XMO^                                     !P          ?__8@"0  
XM JA5=^                                                 ?_OV(
XM$L  !4$EK^                                                 ?
XM_^L@0 @ "I!+?^                                              
XM   ]__Y  J( I4(*_^                                          
XM       ;__V(!$@(6I 5U^                                      
XM           W_VI0 )$A!" +O^                                  
XM               ___^ "0  48 V_^                              
XM                   ___UH   "#2 +_\     X<       " & 0   ! @ 
XM        $              ___M  A  4 !VW^     ($       " " 0   
XM! @         $              ___:H!$  @J"-_^     ($         " 
XM0   !                          ____ "  $"0 [_]    X($ #QS9W;
XM.#:Q\ V''S@\</ &QRH<<;             ^_]LT (  $B%7__@   $($ $2
XM)DB,B$S(0 9(A A$B1 #*)4"$,@            =___($!"0H()O__@   \(
XM$ $")$B("$2(0 1(A A ^, "#Y4>$(@            7__ZR@ (!!0B?[]  
XM !$($ $")$4("$2(0 1(A A @" ""!4B$(@            =__W4 4 $""+[
XM?_P  !$($ $2)D4("$R(0 1(A A$B1 "")4B$(@            +__^J$@@H
XMH4FO_^P   Z^? #AQ8(</C7<, [G SXX<> '!Q4=?=P            /?__U
XM0 %!"@:___@         ! (   0                                *
XM]_VL!   0$G__^@         ! 0   0                             
XM   '[__[D 25$)-;__X         #AX  #@                         
XM       '?^_5((D@12;___X                                     
XM           &__^^B0 %*$W___X                                 
XM               '__[[8@E009O?__X                             
XM                   '___VE!($E3=___\                         
XM                       #__O_Z(!1(F[___\                     
XM                           !___M4BB"2;W___\                 
XM                               !O__?K4(4$M?___\   0         
XM                                   !?_^]>I1 YK____\     (  !
XM                                       !__[_ZDB5">M___\  !PL
XM>&#CP                                       ____=;(HMK____\ 
XM  0R()$1                                        O__][D32J>_W
XM__\   0B('$!                                        ?_]WVMLJ
XMIUW?__\   0B()$!                                        ?__O
XM?:2JK;^___\   0B))$1(@                                      
XM?__^ZUM5:W_W__\   0B&&C@P@                                  
XM    __]?_N:NWOM?__X                                         
XM       !__[^ZYU;M??O__X                                     
XM           #___]_O;VK^\___P                                 
XM               #__[;[:VM_=_/__X                             
XM                   '__V___M[5_Y?__P                         
XM                       '__]WVV[O_[VW__P                     
XM                           '__Z>__O?7OM?__@                 
XM                               '__UWVV_]_?ZK?_@             
XM                                   '__ZMO_M_^_%7__@         
XM                                       '__VK^V_O;^ZO__      
XM                                           /__Y6M_M]__%;__  
XM                                               /__VE[V__[Z:N
XM_^@                                                -__ZJ'O_[
XMO4E5__@                                                /__U$
XM]?[O:]2NOO@                                                ?
XM__ZI"^W^_Q*;?[X                                             
XM   ;__U2JU_;U*2JG_8                                         
XM       ___ZD$OOVK0E7(NX                                     
XM           W__U515:M6%*LG_^                                 
XM               ___J@*)=2HH15H_Z                             
XM                  !_[_U6@2JE5!&K"_N                         
XM                      !O__6H4@20"(16H6[                     
XM                          !__^I"A%$BH1&5"MNP                
XM                              #__]VY$ )$" 4JH;Q\            
XM                                  #O_^JB(50 4B!50'OJ        
XM                                      #__]5*0@ 1 $6K!:X^    
XM                                          #__ZJTA""B$  4B%_=
XM@                                             #]_]5)$$( (HKK
XM4*\KH                                             'W_RJR((0 
XM0!"$@%_7\                                             'O_M5$
XM0@ B@ (K (_OW                                             /_
XM_PJI  A !)"4@#?JM@                                          
XM  /O_5522)$"" 4E $_5?0                                      
XM      ??_RDD@@  $!!4@!>RZX                                  
XM          ?__4;)$!$$($$) "=Y7H                              
XM              _?_YD2($(@0(1B  OTO8                          
XM                 !^__B5D@@  @ D,@!?M>X                      
XM                     #]_?8J)) @" 0!1  -:KX                  
XM                          [?RBDD0$"$ A4*  WVOH              
XM                              ^UMHJI" $( "!0  *MU8          
XM                                  ;O;15"4(@ " 2$  E[OX      
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
X(            
X 
Xend
END_OF_temp_image
if test 14425 -ne `wc -c <temp_image`; then
    echo shar: \"temp_image\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f touchup_fonts -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"touchup_fonts\"
else
echo shar: Extracting \"touchup_fonts\" \(712 characters\)
sed "s/^X//" >touchup_fonts <<'END_OF_touchup_fonts'
X#
X#	A list of directories, fonts and point sizes for
X#	fonts used in touchup
X# 
X# These fonts should be in the standard Sun system font dir
X#
X/usr/lib/fonts/fixedwidthfonts
X"Screen Bold" screen.b. 12 14
X"Courier" cour.r. 10 12 14 16 18 24
X"Courier Bold" cour.b. 10 12 14 16 18 24
X"PC" pcfont.r. 14
X"PC Bold" pcfont.b. 14
X"Serif" serif.r. 10 11 12 14 16
X"apl" apl.r. 10
X"CMR" cmr.r. 8 14
X"CMR Bold" cmr.b. 8 14
X"Gacha" gacha.r. 7 8
X"Gacha Bold" gacha.b. 7 8
X"Sail" sail.r. 6
X"Gallant" gallant.r. 10 19
X#
X# Add new fonts here.
X#	1) list the directory where the fonts can be found
X#	2) list the name of the font the you want
X#	3) list the filename of the font
X#	4) list all of the point sizes of the given font
X#
X#
END_OF_touchup_fonts
if test 712 -ne `wc -c <touchup_fonts`; then
    echo shar: \"touchup_fonts\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f touchup.icon -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"touchup.icon\"
else
echo shar: Extracting \"touchup.icon\" \(1933 characters\)
sed "s/^X//" >touchup.icon <<'END_OF_touchup.icon'
X/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
X */
X	0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x8000,0x0000,0x0000,0x0001,
X	0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
X	0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
X	0x8000,0x0000,0x0000,0x0011,0x8000,0x0000,0x0030,0x1011,
X	0x800E,0x0010,0x1078,0x1011,0x8078,0x1C10,0x104C,0x1011,
X	0x81C0,0x2410,0x1040,0x1011,0x8F00,0x2308,0x0840,0x1011,
X	0xF400,0x4108,0x0840,0x0811,0xC400,0x4088,0x0C40,0x09F9,
X	0x8200,0x4088,0x0C40,0x0709,0x8300,0x804C,0x0C40,0x0C09,
X	0x8100,0xC044,0x0440,0x080D,0x8180,0xC042,0x0460,0x080D,
X	0x8080,0x4042,0x0831,0x8419,0x80C0,0x40C1,0x900F,0x0419,
X	0x8040,0x4180,0x6000,0x0401,0x8020,0x3F00,0x0000,0x0001,
X	0x8050,0x0000,0x0000,0x0001,0x8030,0x0000,0x0000,0x0001,
X	0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
X	0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
X	0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
X	0x8000,0x0000,0x4FFC,0x0001,0x8000,0x0200,0x7006,0x0001,
X	0x8008,0x0200,0x6002,0x0001,0x8008,0x0200,0x2002,0x0001,
X	0x8008,0x0100,0x2002,0x0001,0x8008,0x0100,0x2002,0x0001,
X	0x8008,0x0080,0x2006,0x0001,0x8008,0x0080,0x23F8,0x0001,
X	0x8008,0x0080,0x2600,0x0001,0x8008,0x0080,0x2C00,0x0001,
X	0x8008,0x0080,0x3000,0x0001,0x8008,0x0080,0x1000,0x0001,
X	0x800C,0x0080,0x1000,0x0001,0x8004,0x0080,0x1000,0x0001,
X	0x8004,0x0080,0x1000,0x0001,0x8002,0x0700,0x1800,0x0001,
X	0x8003,0x7A00,0x0000,0x0001,0x8001,0x8000,0x0000,0x0001,
X	0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
X	0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
X	0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
X	0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
X	0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
X	0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
X	0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001,
X	0x8000,0x0000,0x0000,0x0001,0xFFFF,0xFFFF,0xFFFF,0xFFFF
END_OF_touchup.icon
if test 1933 -ne `wc -c <touchup.icon`; then
    echo shar: \"touchup.icon\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f README_FONTS -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"README_FONTS\"
else
echo shar: Extracting \"README_FONTS\" \(2234 characters\)
sed "s/^X//" >README_FONTS <<'END_OF_README_FONTS'
X/**************************************************************************
X   Touchup a bitmap graphics editor for the Sun Workstation running SunView
X   Copyright (c) 1988 by Raymond Kreisel
X   1/22/88 @ Suny Stony Brook
X
X   This program may be redistributed without fee as long as this copyright
X   notice is intact.
X
X==> PLEASE send comments and bug reports to one of the following addresses:
X
X	   Ray Kreisel
X	   CS Dept., SUNY at Stony Brook, Stony Brook NY 11794
X
X	   UUCP: {allegra, philabs, pyramid, research}!sbcs!rayk   
X	   ARPA-Internet: rayk@sbcs.sunysb.edu			
X	   CSnet: rayk@suny-sb
X	   (If nobody is home at any of the above addresses try:
X		S72QKRE@TOWSONVX.BITNET			        )
X
X "If I get home before daylight, I just might get some sleep tonight...."
X
X**************************************************************************/
X
X
X
X  Once Touchup has been compiled an installed, users may add addtional
X  fonts to the font menu by by creating a ".touchup" file in thier
X  home directory.
X
X
X	1.) First copy the file "touchup_fonts" to ~/.touchup
X
X		% cp /usr/local/touchup/touchup_fonts ~/.touchup
X
X	2.) If you had five new fonts in the directory /usr/local/new_fonts
X	    named font1, font2, font3, font4 and font5. You would edit the
X 	    file ~/.touchup and add the following to the end of the file.
X
X    
X            /usr/local/new_fonts
X	    "first font" font1. 8 10 12
X	    "second font" font2. 10 12 14
X	    "thrid font" font3. 10 12 16
X	    "forth font" font4. 7 8 10
X	    "fifth font" font5. 8 10 12
X
X	    a) first give the directory in which the fonts can be found.
X	    b) next give the name of the font, this name will be listed
X		in the font menu
X	    c) then give filename of the font
X	    d) then list all of the point sizes of that fonts
X
X	NOTE: Touchup gets the full path name to the font, by appending
X		the font filename on to the directory name and then
X		appending the point size on to that.
X
X
X	Where can I get more fonts from ???
X
X	The Sun users group distributes tapes with public domain fonts
X	in Sun vfont(5) format. These fonts can be used in Touchup.
X	If you do not have access to these fonts you can send a
X	e-mail request for fonts files to the address at the beginning
X	of this file.
X	
END_OF_README_FONTS
if test 2234 -ne `wc -c <README_FONTS`; then
    echo shar: \"README_FONTS\" unpacked with wrong size!
fi
# end of overwriting check
fi
echo shar: End of archive 1 \(of 7\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 2 3 4 5 6 7 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 7 archives.
    rm -f ark[1-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0