REPOST v15i058: A bitmap editor for Suns, Part01/06

Rich Salz rsalz at uunet.uu.net
Sat Jun 11 07:13:56 AEST 1988


Submitted-by: Raymond T Kreisel <rayk at sbcs.sunysb.edu>
Posting-number: Volume 15, Issue 58
Archive-name: touchup/part01

[  I didn't repack this, nor try it out.  -r$ ]

The following, Touchup, is a bitmap editor (paint program) for Sun
workstations.  It has some of the same features as programs like
MacPaint.  I wrote this program because I could not find any other
programs for the Sun that would allow you to edit bitmaps (screendumps,
video images other bitmaps).

				ray

#! /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 6)."
# Contents:  header.h Makefile INSTALL README touchup.man fixman.sed
#   temp_image touchup.icon
#   fat_cursor
#   strip_icon32x32
#   strip_icon48x48
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\" \(6800 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 at sbcs.sunysb.edu			
X	   CSnet: rayk at suny-sb
X	   (If nobody is home at any of the above addresses try:
X		S72QKRE at 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#include <stdio.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 <math.h>
X#include <pixrect/pixrect_hs.h>
X
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 PASTE 5
X#define MOVE 6
X#define CUT 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 MAX_POLY 100
X
X#define BRUSH_NO 6
X
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 MAINWIN 1
X#define FATWIN 2
X#define COLORWIN 3
X
X#define MAX_FILE_NAME 120
X#define DELETE_KEY 127
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 SUNWHITE   0
X#define SUNBLACK   1
X
X#define NILPR ((struct pixrect *)0)
X
X#define PALET_BLOCK 15
X
X/* constants */
X#define SCREEN_MAX_X  400
X#define SCREEN_MAX_Y  400
X
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 *pattern[];
Xextern struct pixrect *brushes[];
Xextern struct  pixfont  *font_array[];
Xextern struct pr_pos poly_points[];
Xextern struct pr_pos  ptlist[];
X
Xextern struct  pixfont  *screen_r_7;
Xextern struct  pixfont  *screen_r_11;
Xextern struct  pixfont  *screen_r_12;
Xextern struct  pixfont  *screen_r_14;
Xextern struct  pixfont  *screen_b_12;
Xextern struct  pixfont  *screen_b_14;
X
Xextern struct  pixfont  *pcfont_b_14;
Xextern struct  pixfont  *pcfont_r_14;
X
Xextern struct  pixfont  *cour_b_10;
Xextern struct  pixfont  *cour_b_12;
Xextern struct  pixfont  *cour_b_16;
Xextern struct  pixfont  *cour_b_24;
X
Xextern struct  pixfont  *cour_r_10;
Xextern struct  pixfont  *cour_r_12;
Xextern struct  pixfont  *cour_r_16;
Xextern struct  pixfont  *cour_r_24;
X
Xextern struct  pixfont  *serif_r_10;
Xextern struct  pixfont  *serif_r_11;
Xextern struct  pixfont  *serif_r_16;
X
X
Xextern Frame base_frame,fat_frame,color_frame;
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;
Xextern Panel_item magnify_cycle, command_choice,text_size_item;
Xextern Panel_item  text_panel,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;
X
Xextern struct pixrect			brush1_pr,brush2_pr,brush3_pr,
X					brush4_pr,brush5_pr,brush6_pr;
X
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
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 confirmer();
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();
END_OF_header.h
if test 6800 -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\" \(2844 characters\)
sed "s/^X//" >Makefile <<'END_OF_Makefile'
XCFLAGS = -O
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
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 interface.c magnify.c
X
XSH_BASE_DIR = /u13/sr/rayk/touchup
XSH_PATTERNS_DIR = $(SH_BASE_DIR)/pattern_icons
XSH_COMMANDS_DIR = $(SH_BASE_DIR)/command_icons
X
X
X
X################################################################
X#   change these dirs if you move the files
X################################################################
XBASE_DIR = $(PWD)
XPATTERNS_DIR = $(BASE_DIR)
XCOMMANDS_DIR = $(BASE_DIR)
XINFO_PICTURE = $(BASE_DIR)/info.image
XMAN_PAGE= $(BASE_DIR)/touchup.cat
X###############################################################
X###############################################################
X
X
X$(EXE): $(OBJ) touchup.cat
X	cc $(CFLAGS) -o $(EXE) $(OBJ) $(OPTIONS) $(LIBS)
X
X
X
Xlint_it: $(SRC)
X	lint $(SRC) $(OPTIONS) $(LIBS)
X
X
Xinterface.o :
X	cc $(CFLAGS)  -mc68020 -c  interface.c -I$(PATTERNS_DIR)
X
Xpattern.o:
X	cc $(CFLAGS)  -mc68020 -c  pattern.c -I$(PATTERNS_DIR)
X
Xbrush.o:
X	cc $(CFLAGS)  -mc68020 -c  brush.c -I$(PATTERNS_DIR)
X
Xcommand.o:
X	cc $(CFLAGS)  -mc68020 -c  command.c -I$(COMMANDS_DIR)
X
Xfat.o:
X	cc $(CFLAGS)  -mc68020 -c fat.c $(OPTIONS) -DNO_FASTAN
X
Xinfo.o:
X	cc $(CFLAGS)  -mc68020 -c info.c $(OPTIONS) -DINFO_IMAGE='"$(INFO_PICTURE)"' -DHELP_FILE='"$(MAN_PAGE)"'
X
Xtouchup.o:
X	cc $(CFLAGS)  -mc68020 -c touchup.c $(OPTIONS)
X
X
Xtouchup.cat: touchup.man
X	nroff -man $(BASE_DIR)/touchup.man | sed -f fixman.sed > $(BASE_DIR)/touchup.cat
X	
X
Xshar:
X	uuencode info.image info.image > temp_image
X	shar -b -n1 -e6 *.h Makefile INSTALL README touchup.man \
X		fixman.sed temp_image touchup.icon \
X			$(SH_PATTERNS_DIR)/fat_cursor \
X			$(SH_PATTERNS_DIR)/strip_icon32x32 \
X			$(SH_COMMANDS_DIR)/strip_icon48x48 > touchup.shar1
X	shar -b -n2 -e6 $(SH_COMMANDS_DIR)/*.cicon > touchup.shar2
X	shar -b -n3 -e6 $(SH_PATTERNS_DIR)/pattern[1-2]*.icon > touchup.shar3
X	shar -b -n4 -e6 $(SH_PATTERNS_DIR)/pattern[3-9]*.icon \
X			$(SH_PATTERNS_DIR)/brush[1-9].icon > touchup.shar4
X	shar -b -n5 -e6 [a-h]*.c > touchup.shar5
X	shar -b -n6 -e6 [h-z]*.c > touchup.shar6
X	rm -f temp_image
X
Xinstall:
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
X	$(PATTERNS_DIR)/strip_icon32x32
X	@echo
X	@echo
X	@echo "Now just type:  make"
X	@echo
X
X
X
Xmy_backup:
X	cp *.sh *.man *.c *.h Makefile backup
END_OF_Makefile
if test 2844 -ne `wc -c <Makefile`; then
    echo shar: \"Makefile\" unpacked with wrong size!
fi
chmod +x Makefile
# end of overwriting check
fi
if test -f INSTALL -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"INSTALL\"
else
echo shar: Extracting \"INSTALL\" \(883 characters\)
sed "s/^X//" >INSTALL <<'END_OF_INSTALL'
X
X
X	How to install Touchup
X
X
X	Unpack all of the archive files into the same directory.
X	When you unpack the first archive you will get a message like:
X
X	Found 1 control char in "fixman.sed"
X
X	Do not worry about this, just continue with the instalation.
X	After you have unpacked all of the archives then type the
X	following command:
X
X	% make install
X
X	you will get messages here
X
X	then just type the following:
X
X	% make
X
X
X	when this is done the excutable file will be called touchup
X	To run it just type:
X
X	% touchup
X
X
X	and then you be in the Touchup bitmap editor.
X
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 option (you can read about this in the man page)
X	so the it will run faster.
END_OF_INSTALL
if test 883 -ne `wc -c <INSTALL`; then
    echo shar: \"INSTALL\" 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\" \(1278 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 at sbcs.sunysb.edu			
X	   CSnet: rayk at suny-sb
X	   (If nobody is home at any of the above addresses try:
X		S72QKRE at TOWSONVX.BITNET			        )
X
X "If I get home before daylight, I just might get some sleep tonight...."
X
X**************************************************************************/
X
X	Be sure to read the instructions in INSTALL first.
X
X	There in is a manual in file touchup.man
X
X
X	After you have installed touchup these are the files
X	you must have in order to run the execuatble code:
X
X		touchup*
X		info.image
X		touchup.cat
X
X
X	The rest of the files can be removed.
X
X	If you are using Touchup on a color Sun you may want to
X	use the -n option (you can read about this in the man page)
X	so the it will run faster.
END_OF_README
if test 1278 -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\" \(17251 characters\)
sed "s/^X//" >touchup.man <<'END_OF_touchup.man'
X.TH Touchup 1 "26 March 1988"
X.SH NAME
Xtouchup \- a bitmap graphics editor for Sun raster files
X.SH SYNOPSIS
X.B touchup
X[ \fB\-x width ]
X[ \fB\-y height ]
X[ \fB\-n ]
X[ \fB\-p ]
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 \fISun raster file\fP\^(5)\fR 
Xformat.
X.SH OPTIONS
X.IP \fB\-x
X\fItouchup\fP will start up with the width of the drawing area given
Xby the argument after -x.
XOtherwise, the default drawing area has a width of 1152 pixels
X.IP \fB\-y
X\fItouchup\fP will start up with the height of the drawing area given
Xby the argument after -y.
XOtherwise, the default drawing area has a height of 900 pixels
X.IP \fB\-p
X\fItouchup\fP will start up with a drawing area of 900x1152 if this option
Xis used.
XThese dimensions are more suitable for printing out pages of text on the
Xlaser printer, since drawing area is in proportion to normal paper size.
X.IP \fB\-n
XThis option disables the 'undo' command so that \fItouchup\fP
Xwill require less memory.  The use of this
Xoption will make the color version much more
Xusable, by freeing up a large amount of the memory.
X
X.SH COMMANDS
X.LP
XTo edit a bitmap, type `\fBtouchup\fP'.  
XA \fIraster file\fP
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.
XFrom top to bottom, the five subwindows are:
X.IP "1)" 5
XThe topmost subwindow, an option subwindow, 
Xallows you to set global parameters for the entire drawing area and
Xspecify operations for loading and saving files.
XThe options are:
X.RS 
X.IP "\fB(Load)\fP" 10
XRead in the raster file specified in the file name field.
X.IP "\fBLoad:Cut/Paste buffer\fP" 10
XWhen the load cycle is set to this mode all raster files will be loaded into
Xthe Cut/Paste buffer, then it can be previewed with the "view" feature.
XNote: When a color image is loaded in the Cut/Paste buffer the color map for
Xthat image is lost. The colormap is only loaded in when a color image is
Xloaded on to the drawing area, with option 'Load:entire image'.
X.IP "\fBLoad:entire image\fP" 10
XWhen the load cycle is set to this mode all raster files will be loaded into
Xthe drawing area and the size of the drawing area will be restricted to the
Xsize of the raster file.  If the image has depth greater then one then the
Xcolormap is loaded in so that the can be properly view.
X.IP "\fB(Save)\fP"
XWrite the current raster file onto disk with the name in the file name field.
X.IP "\fBSave:Cut/Paste buffer\fP" 10
XWhen the save cycle is set to this mode only the current Cut/Paste buffer
Xwill be saved to the file in the filename field.
X.IP "\fBSave:entire image\fP" 10
XWhen the save cycle is set to this mode the current image in the drawing
Xarea will be saved to a file in the filename field.
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:compress\fP" 10
XWhen the save cycle is set to this mode the current image 
Xwill be saved out in the Sun raster file
XBYTE_ENCODED format.  This will often compress the file to one half
Xthe normal size. One of the problems with saving a file in compressed
Xformat is that the 'screenload' command will then not be able to read the
Xfile.
X.IP "\fB(Quit)\fP"
XQuit the program.
X.IP "\fBFile name:\fP"
XThe file name of the current bitmap. When you are typing in the file name
Xthe ESC key can be used to do standard csh filename completion.
X.IP "\fBGrid:none\fP"
XWhen Grid is set to some value other that "none" every bitmap operation
Xwill be forced to the closest grid point.  The number after Grid is the number of
Xpixels between each grid point.  The actual grid is not visible.
X.IP "\fB(undo)\fP"
XWhen this button pressed the last operation effecting the drawing area will be removed.
X.IP "\fB(view)\fP"
XWhen this button is pressed a window will be displayed containing
Xone of two possible images, depending on the "view" cycle.
X.IP "\fBview:man page\fP"
XThis will set the view to the manual page entry for Touchup, so 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 touchup, so that when
Xthe "view" button is pressed, a window with the copyright notice
Xwill appear.
X.IP "\fBBorders:Yes\fP"
XThis cycle determines is borders are drawn on filled reactangles
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, the FILL color, and lines.
X.IP "\fBtext string:\fP"
XThis is the string that is copied to the bitmap when the TEXT command is used.
X.IP "\fBfonts:ABC\fP"
XThis cycle determines the font for the text when the TEXT command is used.
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.IP "2)" 5
XThe second 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"
XBefore this button is pressed, select a point on the drawing area that
Xyou wish to have as a new paint pattern, then press "Define pattern" the
Xarea centered at the selected point will then become the last paint pattern
Xin the pattern window.
X.IP "3)" 5
XThe third subwindow is the command subwindow. This window 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
XFirst move to the Text string field in the topmost window and type in the
Xtext that you wish to place on the bitmap.  Then use the SELECT POINT mode
Xto select a point within the drawing area.  Once both of these two things are
Xdone press the TEXT command icon with "ABC" on it, and the current
Xtext string will be placed on to the bitmap in the currently selected font.
X.IP "\fBMAGNIFY\fP" 10
XFirst use the SELECT POINT mode 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 "\fBFLOOD FILL\fP"
XFirst select a point on the drawing area that is inside a closed polygon region.
XWhen the FLOOD FILL icon is pressed, it will start at the selected point and
Xfill outward until it hits a border.
XNote: FLOOD FILL will fill with the current DRAW COLOR value (on a mono sun).
XWhen FLOOD FILL is used on a color sun it will fill with the currently selected
Xcolor and it will fill until it gets to a border made of the current color.
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 POINTS\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"
XLeft button down marks the end point of a
Xline; moving with the button down
Xrubber bands a line; releasing button
Xdraws the line.
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"
XLike \fBLINE\fP except draws a rectangle.
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
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 vertice
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.IP "4)" 5
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 menu
Xwhich is described in the PAINT command 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 SELECT REGION command 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 "\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.
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.
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 "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
Xfile_name is the file name of an image created in Touchup.
X
X.LP
XWhen the picture is wider than it is high use the following command:
X
X	 % pssun -s 8 10.5 -r file_name | lpr -Plw
X
X
X.LP
XWhen the picture is higher than it is wide use this command:
X
X	 % pssun -s 8 10.5 file_name | lpr -Plw
X
X.LP
XWhen the picture is part of a document use this command:
X
X     	 % pssun -S 6 -l 1.5 3 file_name | 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
X   % cat file_name | /u5/sr/local/bin/imPf2 | lpr -Pnewcanon
X
X
X.SH "TYPICAL QUESTIONS:"
X.IP "\fBHow do I select an area bigger than the drawing window ???\fP" 5
X
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
X
X.IP "\fBHow do I merge two different pictures in to one picture ???\fP" 5
X.LP
XWhen booting up Touchup the 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 Touchup and 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 where ever you like.
X
X
X.IP "\fBHow do I make part of a picture into an icon ???\fP" 5
X
X.LP
XUse a program such as the "The Portable Bitmap Toolkit" by Jef
XPoskanzer(jef at lbl-rtsg.arpa)
XThis can be ftped from zap.mit.edu, I also have a copy
Xrolled out on tape if you do not have access to zap.mit.edu.
X
X
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
X.LP
XUse a program such as the "The Portable Bitmap Toolkit" by Jef
XPoskanzer(jef at lbl-rtsg.arpa)
XThis can be ftped from zap.mit.edu, I also have a copy
Xrolled out on tape if you do not have access to zap.mit.edu.
X
X
X.IP "\fBWhat does SAVE COMPRESSED mean ???\fP" 5
X
X.LP
XThis means that the image will be saved out in the Sun rasterfile
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 'screenload' command will then not be able to read the
Xfile.
X
X
X.SH FILES
X\fI/usr/include/rasterfile.h\fP \- Sun raster file format
X.SH SEE ALSO
X.IR pssun (1),
X.IR rastps (1),
X.IR suntools (1),
X.IR screendump (1),
X.IR sceeenload (1)
X.IR rasterfile (5)
X.SH BUGS
X.LP
XTouchup has not been totally debugged for use with color images.
X.LP
XIf you try to FLOOD FILL an area that has a VERY complex pattern and covers
Xa large area it is possible to over flow the stack and cause a core dump.
X.SH Author
X Ray Kreisel
X Computer Science Department
X SUNY at Stony Brook
X Stony Brook NY 11794
X.LP
X UUCP: {allegra, philabs, pyramid, research}!sbcs!rayk   
X ARPA-Internet: rayk at sbcs.sunysb.edu
X CSnet: rayk at suny-sb
X.LP
X"If I get home before daylight, I just might get some sleep tonight...."
END_OF_touchup.man
if test 17251 -ne `wc -c <touchup.man`; then
    echo shar: \"touchup.man\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f fixman.sed -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"fixman.sed\"
else
echo shar: Extracting \"fixman.sed\" \(8 characters\)
sed "s/^X//" >fixman.sed <<'END_OF_fixman.sed'
Xs/_//g
END_OF_fixman.sed
echo shar: 1 control character \(a backspace\) may be missing from \"fixman.sed\"
if test 8 -ne `wc -c <fixman.sed`; then
    echo shar: \"fixman.sed\" 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\" \(6467 characters\)
sed "s/^X//" >temp_image <<'END_OF_temp_image'
Xbegin 644 info.image
XM6:9JE0   :(   #@     0  $B(    "          " _P" _P" )@ #_H S
XM !__P( R #?_\( R '___( Q  &  O^  ( P  /___Z  ( O # '__?_\( N
XM  ?_QX "__B +@ ?;_>  O_V@"X .O[?@ /_@ " +0!W@ 7_8( M &^ !?_X
XM@"T W_V !/_H@ 8 #( ) (   8  (  !  0  $!P.!R #  !@ ;_^( " /Z 
XM @ $@ , .H $ (   (  (  "  (  ,"(1"* #  #OX %__B  @"2@ ( !( #
XM $: !@"  "  !  !  %!!$0B@ P !X &__R  @"2'#&'1<8S< ""'#<<[<. 
XM .RX_  $!T$  $$$1"* #  .@ ;__( " ! B$(C&(A&( (  (AB(1B"!&,0@
XM  @(P(   $$$?#Z #  ;^X &_X " !!!$)!$(A$$ (  01!(1 """(0@  @0
XM0(   $",1"* #  ?]X &_X     001"0!"(1! "  $$01(0 @@B$(  ($ " 
XM  ! =()!@ P =^^ !O_    001"0!"(1! "  $$01(0 @@B$(  ($ "   ! 
XM!()!@ P ;]^ !O_    001"0!"(1! "!01!#! """(0@  @0 (   $ (@D& 
XM# #?OX &_^   ! B$8A$(C&( $(B&(,$ ($8A"( ! A!  ! &,9C@ L  ?]_
XM@ ;_T   ?!P.QXYQV7  /!P7 @\#X.G.'  $!X$  ?#@?#Z "P !@ C_\( '
XM  &  P 0 H "  B  @ "  * $0 'WX '__" !P !@ , $ 2  @ (@ (  0 $
XM@!$ #[^ !__P@ <  8 # ! $@ ( $( 7 !_^@ ?_\( '  .  ( " #@>   !
XMX( 7 'Z "/_X@"H ?8 (__B *@#W__> !O_P@"D  >_^@ ?_^( I  /__8 #
XM_^J  O_P@"D !X $__Z_W___^( #  0$ H .  0   .  ( .  >  __?^_> 
XM O_P  ''  0$ H # /@  !^      <8   2  @"  ( .  __^_O]>X "__W_
XM^   @@  ! *  P!$   (0( " (2 !0"  ( . !__[__[5____MO_\   DFX<
XM'X_!PW  1'.   A#QS@ B-P<' _#@ & @ X '_??__;O@ 3__   DC$$! ("
XM(8@ 1"$ "$0B$ "08B($$$1 @ " #@ __[___1V]_]O___P  *H@! 0"!!$(
XM '@A  ^  "(0 +! 0000"""  ( . #__?_?R]W^ !/\  *H@! 0"!_$( $02
XM  D#X2  T$!_! X/X(  @ X ?___W^TI__]_O__^@   1" $! ($ 0@ 0A( 
XM"(0A( "(0$ $ 8@ @ " #@!_^_^_^E=_ZO:  O_  $0@! 0"! $( $(,  B(
XM(,  B$! ! !( (  @ X ?_^_?]5:W___^___P !$( 0$0B(1" !"#  (2&# 
XM (1 (0001""  ( . '___?^T)7;_[_?___  1'@? X'!XYP _ @ '&>P@  !
XMSO >'Q^#P^" #@!_^___=4ZM__VO___P@ H "( # (  @!< ?____N at 16^N[
XM?___[( * !"  @ !@!@ ?_^[V])&M[]W[____( * !"  @ !@!@ ?__WOV0(
XM57;O7____( * 'B  @ '@ " %P!__O_^R *6W;[[?__^@"@ /__?>U!1)5=M
XMU____8 H '___^Z@ $JZ^[^  O^ * !___K=0@$0I^^  O_^@ " )P!__]?Z
XMA  "&5ZW@ +_@"@ ?___OJ@ $$:U[____H  @"< ?__^Z8 " !"O7X "_X H
XM '__U_Z@  ""$8 "__V * #___[5"   !$9?___^@"@ @ +_^B  "!"0M___
XM_( H /___;1 @   1 5O___X@"@ ___[Z00"0(BHG____( H ( "_[5(! $!
XM E7___R * "  O]J$  "!"B7?__X@"@ ___[]$ (  B"2O___( H ( "_TD 
XM$  !*)7___B )P !@ +_]$  ! 0"J____( G  /___U)%  ((502?__X@"< 
XM!___^[2@@  0! %EO__X@"< !____M*  P!*2G___( G  ?___6MU00 ")"2
XM[__Z@"< #X "_W4@(  1!6V___X /D @@ <  8 # (  X(    &  @! @ T 
XM#___]5J70   *1+O__X "$" #0"  "    & $0 ?___]]JH(  !"?U___P (
XM6.#@!8L.&EAAL <' "Q$L".#@  -'&QAPL" #  ?___K6U3B  $=UO___H  
XM"&0A$ 9,D29DD5 !"(  ,D3(((1 $R)4D$,@@ P /___W>I5%  "8JWW_O^ 
XM  A$(, $2!$B0'%0 08 (D2(((0 $2)4<$(@@ P @ +_NU2"R   G5OO__Z 
XM  A$(" $2!$B0)%0 0$ (D2(((0 $2)4D$(@@ P @ +_]= $*0 %(K>  O\ 
XM"$0A$ 9($29 D5 !"(  ,DS(((1 $R)4D$(F@ L  8 "_^\D (( "-U*[WZ^
XM@  (1"#@!8 at .&D!I4 $' "PTL""#@  -'%1H0B* "P !__?_V<B  !0 (1 3
XMWO_]@ "  P $   "@ 4 (( )  * "P !@ +_]R 5  !"("2]__^  ( #  0 
XM "* !0 @@ D !( +  &  O_=24E  (1! W__?X $  0  !R !0 @@!8  8 "
XM__,2MI) "  $__[NP( E  &  O_>05U @ "@E5%?O__ @"4  8 "_[*6JY0 
XM"2*$OWV_H( E  '___WL!5\A05)>L7_[_^" )0 #@ +_M5590 at HDMTK_]_] 
XM@"4  __[_^H$MQB at T2ZTK___\( E  >  O^T40I"229755___^" )0 '@ +_
XM:H10$4!)/KI_]__0@"4 !X "_^@1 2*2LD54K___^( E  >  O_6H@ ")* :
XMJ5_]_^@   2  P 0   (0   !""  @ @@ ,  8 ,  ?___ZH1 (DP% @!3__
XM__@   2  P 0   (  (  "  0  @!( " $& #  '@ +_VH  )$D)I0"J;___
XM\ PL- &QA$ 6' !IP<>+'"Q$\.&@#PX ./%AQ8> "0 '@ +_M0A  J)4  E?
XM___H$C), 5)$0!DB )A"(@R$,D1!$F $$0!$09(F2(  @ @ !X "_V@@A)4(
XMJ"$BO___^ XB1 %1Q$ 1/ "(08((!")$0>(@!!$ 1$$3Q : "0 #___^TH((
XM(E*B@ !*7___\!(B1 %21$ 1( "(0$((!")$00(@!!$ 1$$2! & "0 #@ +_
XMU!00B4"L! %?___H$B), 5)$P!DB )A"(D@$,DQ)$F $D0!$21(D"(  @ @ 
XM ___^ZJ at 0!*54)%*O___^ TB- %1HT 6' !H0<&(!"PT,.&@ PX .#$1Q > 
XM"@"  O_9 ($E(6T  5___^B !0! @!\ ___W5$0$!(20)!2W___P@ 0 !$" 
XM'P"  O_K$ @5(35!0J___^B !  #@ " 'P"  O^80$ H % ("5___]" )@#_
XM__MV@   (H  +2)2?___\( F ( "_^D  $@ J  !7___T( F ( "_U0  !( 
XM%@1*O___X( F '___NJ   "@ %0 @6___X  @"8 ?__[V@  !(  B@ %7___
XM@ " )@!___^T  "@ 10 "+___X  @"8 /___Z0  !(  (H   5___Z" )@ ]
XM__]:$  I D@ DK___\" )@ ;__WP  !! ((  7___X G  ___ZH at 1(I*J  "
XM7__^P( F  ;___2    0$44 !/?__X G  /__LD  *1"*  )+__]@ , <( %
XM  $ @ " !0"   B ! "  ( , /__]  %*(BJ@   ___Z@ , $( % $& "  (
XM"( " (  @ T W_^I $C! 14  E?_[  ,'  0XL- #!P \6.#@  .'%B)8X-+
XM'@!8<>.#AX + #_^Z@*3.@)J2!2__U@ $B( $1,DP!(B $&0A$ 1(F2)D(3,
XMB !DB(  A$B  ( * #__M!0DP 05D0%O_-  #A@ $1(D0 X8 $$0 at P 0(D2)
XM (1(B !$B(  A ^ "P O_NB!JRJ at JD %7_H  !($ !$2)$ 2! !!$( !@! B
XM1(D A$B( $2(@ "$"( + #_]TA9*T44JM E_^   $B( $1(DP!(B $D0A$ 1
XM(F29 (3(B0!$B)"$2(  @ H /_^TB94""E7)0J_P   -'  0XB- #1P ,1"#
XM@  .'%AI (-(A@!$<&"#AX + #__Z1942!"*- at K?^( ' $" " ! "   0( 2
XM #_^J at BID $RR84_\( &  1 @ @ 0(@ !$" $@ ?_?130@("158I=_" !@ #
XM@ " " ! <  #@ " $@ ?_\D4/510E*K"[^" *0 ?^_I2P(  A2E5BU_P@"D 
XM&__4I!T)$%*B1?_@@"D '__J2"@  H6EJJ_ @"D /_^U$0J    *@E=_P( I
XM #__[$ 2   %4*KOP( I #_]^Q E@   "H)+7\" *0 __]9 @  0 !4 at EO_ 
XM@"D >__\@  %1 %*A!7_P( I #?_^Q (D!"U("NOP( I &_^U* !(D((0!=_
XMP( I '___P 2  "C &W_P( I '__^M    0:0!?_@ " *0!___:   0@ *  
XM[;_ @"D ?__M4 B   $%01O_P( I '___X  $  ($@!W_Z" !0!    $@!\ 
XM??^V: $  "1"K__P@ H (  !@!L .___D" A(4$$W__P   6'&QAPL.  !PL
XM>&#CP( : "___64 ! (*$3_?H   &2)4D$,D0 0R()$1@!L .__[J *   @0
XM1?;_^   $#Q4<$(C  0B('$!@!L %___5"0044*37__8   0(%200B"   0B
XM()$!@!L 'O__ZH   H(4#7__\   $")4D$(D0 0B))$1(H : !7O^U@(  " 
XM )/__]   ! <5&A"(X  !"(8:.#"@!H #]__]R )*B$FM__\@"D #O_?JD$2
XM0(I-___\@"D #?__?1( "E";___\@"D #__]]L02H(,WO__\@"D #___[2 at D
XM"2IN___^@"D !__W_]$ HD3=___^@"D  ___VJ11!)-[___^@"D  W__OUJ$
XM*"6O___^@"D  O__>O4H@<U____^@"D  __]_]21*A/6___^@"D  ?___NMD
XM46U____^@"D  7__^]R)I5/?[__^@"H __[OM;953KN___Z *@#__][[255;
XM?W___H J /___=:VJM;_[__^@"D  ?_^O_W-7;WVO__\@"D  __]_=<ZMVOO
XMW__\@"D !___^_WM[5_>?__X@"D !__]M]M;6_N_G__\@"D #__[?__V]J_\
XMO__X@"D #__^[[;=W_][;__X@"D #__]/?_WOKWVO__P@"D #__Z[[;?^_O]
XM5O_P@"D #__]6W_V__?BK__P@"D #__[5_;?WM_=7__@@"D '__\K6_V^__B
XMM__@@"D '__[2][?_]]-7?_0@"D &__]5#W_]WJ2J__P@"D '__ZB>O]WM>I
XM77WP@"D /__]4A?;_?XE-O]\@"D -__ZI5:_MZE)53_L@"D ?__]2"7W[5H2
XMKD7<@"D ;__ZJHJM6K"E63__@"D ?__U0%$NI44(JT?]@"D _]_ZK0)52J at C
XM5A?W@"D W__K4*0)(!$(K4+=@ " * #__]2%"*)%0B,J%;=@@"<  ?__NW(@
XM!(@0"E5#>/B )P !W__51$*H *1 JH  ]]2 )P !__^JE(0 (@"+5 at M<?( G
XM  '__U5I"$%$(  I$+^[@"<  ?O_JI(@A !%%=:A7E= @"8  ^_^561!" " 
XM "$) +^OX( F  /?_:J(A !%  16 1_?N( F  ?__A52 !"   DA*0!OU6R 
XM)@ 'W_JJI)$B!! *2@"?JOJ )@ /O_Y2200  " @J0 O9=> )@ /__J-DB B
XM"$""$@!.\KV )@ ?O_\R)$"$0($(Q  7Z7N )@ _?_Q*R00  0 2&0 OVO> 
XM)@!^_OL5$D at 0! ( H@ &M5^ )@ =OY122(  @0@$*A0 &^U]@"8 'VMM%5(0
XG A  0*  !5NK@"8 #=[:*H2A$  0"0@ $O=_@/\ @/\ @/\ @$P 
X 
Xend
END_OF_temp_image
if test 6467 -ne `wc -c <temp_image`; then
    echo shar: \"temp_image\" 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 fat_cursor -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"fat_cursor\"
else
echo shar: Extracting \"fat_cursor\" \(193 characters\)
sed "s/^X//" >fat_cursor <<'END_OF_fat_cursor'
X/* Format_version=1, Width=16, Height=16, Depth=1, Valid_bits_per_item=16
X */
X	0xFF80,0xFF00,0xF800,0xFC00,0xFE00,0xDF00,0xCF80,0xC7C0,
X	0x83E0,0x01F0,0x00F8,0x007C,0x003E,0x001C,0x0008,0x0000
END_OF_fat_cursor
if test 193 -ne `wc -c <fat_cursor`; then
    echo shar: \"fat_cursor\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f strip_icon32x32 -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"strip_icon32x32\"
else
echo shar: Extracting \"strip_icon32x32\" \(435 characters\)
sed "s/^X//" >strip_icon32x32 <<'END_OF_strip_icon32x32'
X#!/bin/sh
X# This shell script will strip an 64x64 icon down to 32x32 to be used
X# as a filling pattern in Touchup
Xfor patterns in ` ls pattern[0-9].icon; ls pattern[0-9][0-9].icon; ls brush[0-9].icon `
Xdo
Xecho "Stripping $patterns..."
Xawk '
XBEGIN { FS = "," }
XNR == 1,NR == 2 { print }
XNR < 18 && NR > 2 { printf "%s,%s,%s,%s,\n", $1, $2, $5, $6 }
XNR == 18 { printf "%s,%s,%s,%s\n", $1, $2, $5, $6 }
X' $patterns > ${patterns}.pat
Xdone
END_OF_strip_icon32x32
if test 435 -ne `wc -c <strip_icon32x32`; then
    echo shar: \"strip_icon32x32\" unpacked with wrong size!
fi
chmod +x strip_icon32x32
# end of overwriting check
fi
if test -f strip_icon48x48 -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"strip_icon48x48\"
else
echo shar: Extracting \"strip_icon48x48\" \(405 characters\)
sed "s/^X//" >strip_icon48x48 <<'END_OF_strip_icon48x48'
X#!/bin/sh
X# This shell script will script an 64x64 icon down to 48x48 to be used
X# as a command icons in Touchup
Xfor patterns in ` ls *.cicon `
Xdo
Xecho "Stripping $patterns..."
Xawk '
XBEGIN { FS = "," }
XNR == 1,NR == 2 { print }
XNR < 26 && NR > 2 { printf "%s,%s,%s,%s,%s,%s,\n", $1, $2, $3, $5, $6, $7 }
XNR == 26 { printf "%s,%s,%s,%s,%s,%s\n", $1, $2, $3, $5, $6, $7 }
X' $patterns > ${patterns}.pat
Xdone
END_OF_strip_icon48x48
if test 405 -ne `wc -c <strip_icon48x48`; then
    echo shar: \"strip_icon48x48\" unpacked with wrong size!
fi
chmod +x strip_icon48x48
# end of overwriting check
fi
echo shar: End of archive 1 \(of 6\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 2 3 4 5 6 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 6 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

-- 
Please send comp.sources.unix-related mail to rsalz at uunet.uu.net.
-- 
Please send comp.sources.unix-related mail to rsalz at uunet.uu.net.



More information about the Comp.sources.unix mailing list