[comp.sources.x] v06i036: xfig 2.0 patch 4 Part 3/3

envbvs@epb3.lbl.gov (Brian V. Smith) (03/15/90)

Submitted-by: envbvs@epb3.lbl.gov (Brian V. Smith)
Posting-number: Volume 6, Issue 36
Archive-name: xfig2/patch4
Patch-To: xifg2: Volume 6, Issues 9-24

#! /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 3 (of 3)."
# Contents:  panel.c.diff
# Wrapped by envbvs@epb3.lbl.gov on Mon Mar 12 16:28:08 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'panel.c.diff' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'panel.c.diff'\"
else
echo shar: Extracting \"'panel.c.diff'\" \(29567 characters\)
sed "s/^X//" >'panel.c.diff' <<'END_OF_FILE'
X*** panel.c.old	Mon Feb 26 16:41:18 1990
X--- panel.c	Mon Mar 12 12:04:18 1990
X***************
X*** 39,44
X  extern	char	*printer_list[];
X  extern	int	INCHES;
X  extern	TOOL	fontmenu;		/* popup menu for printer fonts */
X  
X  /**************     local variables and routines   **************/
X  
X
X--- 39,45 -----
X  extern	char	*printer_list[];
X  extern	int	INCHES;
X  extern	TOOL	fontmenu;		/* popup menu for printer fonts */
X+ extern	int	figure_modified;
X  
X  /**************     local variables and routines   **************/
X  
X***************
X*** 111,116
X  	{ 0, 0, 0, 0, &line_ic, F_POLYLINE, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &polygon_ic, F_POLYGON, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &box_ic, F_BOX, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &arc_box_ic, F_ARC_BOX, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &text_ic, F_TEXT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &arc_ic, F_CIRCULAR_ARC, set_command, null_proc, S_ON, },
X
X--- 112,119 -----
X  	{ 0, 0, 0, 0, &line_ic, F_POLYLINE, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &polygon_ic, F_POLYGON, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &box_ic, F_BOX, set_command, null_proc, S_ON, },
X+ #ifndef TFX
X+ 	/* no rounded-corner boxes with TFX */
X  	{ 0, 0, 0, 0, &arc_box_ic, F_ARC_BOX, set_command, null_proc, S_ON, },
X  #endif
X  	{ 0, 0, 0, 0, &text_ic, F_TEXT, set_command, null_proc, S_ON, },
X***************
X*** 112,117
X  	{ 0, 0, 0, 0, &polygon_ic, F_POLYGON, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &box_ic, F_BOX, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &arc_box_ic, F_ARC_BOX, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &text_ic, F_TEXT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &arc_ic, F_CIRCULAR_ARC, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &turn_ic, F_TURN, set_command, null_proc, S_ON, },
X
X--- 115,121 -----
X  #ifndef TFX
X  	/* no rounded-corner boxes with TFX */
X  	{ 0, 0, 0, 0, &arc_box_ic, F_ARC_BOX, set_command, null_proc, S_ON, },
X+ #endif
X  	{ 0, 0, 0, 0, &text_ic, F_TEXT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &arc_ic, F_CIRCULAR_ARC, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &turn_ic, F_TURN, set_command, null_proc, S_ON, },
X***************
X*** 115,120
X  	{ 0, 0, 0, 0, &text_ic, F_TEXT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &arc_ic, F_CIRCULAR_ARC, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &turn_ic, F_TURN, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &glue_ic, F_GLUE, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &break_ic, F_BREAK, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &scale_ic, F_SCALE, set_command, null_proc, S_ON, },
X
X--- 119,127 -----
X  	{ 0, 0, 0, 0, &text_ic, F_TEXT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &arc_ic, F_CIRCULAR_ARC, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &turn_ic, F_TURN, set_command, null_proc, S_ON, },
X+ #ifdef TFX	/* put arrow before glue */
X+ 	{ 0, 0, 0, 0, &autoarrow_ic, F_AUTOARROW, set_command, null_proc, S_ON, },
X+ #endif
X  	{ 0, 0, 0, 0, &glue_ic, F_GLUE, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &break_ic, F_BREAK, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &scale_ic, F_SCALE, set_command, null_proc, S_ON, },
X***************
X*** 118,123
X  	{ 0, 0, 0, 0, &glue_ic, F_GLUE, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &break_ic, F_BREAK, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &scale_ic, F_SCALE, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &autoarrow_ic, F_AUTOARROW, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &addpt_ic, F_ADD_POINT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &deletept_ic, F_DELETE_POINT, set_command, null_proc, S_ON, },
X
X--- 125,131 -----
X  	{ 0, 0, 0, 0, &glue_ic, F_GLUE, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &break_ic, F_BREAK, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &scale_ic, F_SCALE, set_command, null_proc, S_ON, },
X+ #ifndef TFX	/* put arrow after glue */
X  	{ 0, 0, 0, 0, &autoarrow_ic, F_AUTOARROW, set_command, null_proc, S_ON, },
X  #endif
X  	{ 0, 0, 0, 0, &addpt_ic, F_ADD_POINT, set_command, null_proc, S_ON, },
X***************
X*** 119,124
X  	{ 0, 0, 0, 0, &break_ic, F_BREAK, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &scale_ic, F_SCALE, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &autoarrow_ic, F_AUTOARROW, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &addpt_ic, F_ADD_POINT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &deletept_ic, F_DELETE_POINT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &move_ic, F_MOVE, set_command, null_proc, S_ON, },
X
X--- 127,133 -----
X  	{ 0, 0, 0, 0, &scale_ic, F_SCALE, set_command, null_proc, S_ON, },
X  #ifndef TFX	/* put arrow after glue */
X  	{ 0, 0, 0, 0, &autoarrow_ic, F_AUTOARROW, set_command, null_proc, S_ON, },
X+ #endif
X  	{ 0, 0, 0, 0, &addpt_ic, F_ADD_POINT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &deletept_ic, F_DELETE_POINT, set_command, null_proc, S_ON, },
X  #ifdef TFX	/* put movept before move */
X***************
X*** 121,126
X  	{ 0, 0, 0, 0, &autoarrow_ic, F_AUTOARROW, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &addpt_ic, F_ADD_POINT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &deletept_ic, F_DELETE_POINT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &move_ic, F_MOVE, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &copy_ic, F_COPY, set_command, null_proc, S_ON, },
X
X--- 130,138 -----
X  #endif
X  	{ 0, 0, 0, 0, &addpt_ic, F_ADD_POINT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &deletept_ic, F_DELETE_POINT, set_command, null_proc, S_ON, },
X+ #ifdef TFX	/* put movept before move */
X+ 	{ 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
X+ #endif
X  	{ 0, 0, 0, 0, &move_ic, F_MOVE, set_command, null_proc, S_ON, },
X  #ifndef TFX	/* put movept after move */
X  	{ 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
X***************
X*** 122,127
X  	{ 0, 0, 0, 0, &addpt_ic, F_ADD_POINT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &deletept_ic, F_DELETE_POINT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &move_ic, F_MOVE, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &copy_ic, F_COPY, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &remove_ic, F_REMOVE, set_command, null_proc, S_ON, },
X
X--- 134,140 -----
X  	{ 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
X  #endif
X  	{ 0, 0, 0, 0, &move_ic, F_MOVE, set_command, null_proc, S_ON, },
X+ #ifndef TFX	/* put movept after move */
X  	{ 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
X  #endif
X  	{ 0, 0, 0, 0, &copy_ic, F_COPY, set_command, null_proc, S_ON, },
X***************
X*** 123,128
X  	{ 0, 0, 0, 0, &deletept_ic, F_DELETE_POINT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &move_ic, F_MOVE, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &copy_ic, F_COPY, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &remove_ic, F_REMOVE, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &flip_x_ic, F_FLIP_XAXIS, set_command, null_proc, S_ON, },
X
X--- 136,142 -----
X  	{ 0, 0, 0, 0, &move_ic, F_MOVE, set_command, null_proc, S_ON, },
X  #ifndef TFX	/* put movept after move */
X  	{ 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
X+ #endif
X  	{ 0, 0, 0, 0, &copy_ic, F_COPY, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &remove_ic, F_REMOVE, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &flip_x_ic, F_FLIP_XAXIS, set_command, null_proc, S_ON, },
X***************
X*** 129,135
X  	{ 0, 0, 0, 0, &flip_y_ic, F_FLIP_YAXIS, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &rot90_ic, F_ROTATE90, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &rot270_ic, F_ROTATE270, set_command, null_proc, S_ON, },
X! 
X  	/* place holders to align some button groups */
X  	{ 0, -1, 0, 0, &blank_ic, F_NOP, null_proc, null_proc, S_MOMENT, },
X  
X
X--- 143,149 -----
X  	{ 0, 0, 0, 0, &flip_y_ic, F_FLIP_YAXIS, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &rot90_ic, F_ROTATE90, set_command, null_proc, S_ON, },
X  	{ 0, 0, 0, 0, &rot270_ic, F_ROTATE270, set_command, null_proc, S_ON, },
X! #ifndef TFX
X  	/* place holders to align some button groups */
X  	{ 0, -1, 0, 0, &blank_ic, F_NOP, null_proc, null_proc, S_MOMENT, },
X  #endif
X***************
X*** 132,138
X  
X  	/* place holders to align some button groups */
X  	{ 0, -1, 0, 0, &blank_ic, F_NOP, null_proc, null_proc, S_MOMENT, },
X! 
X  	{ 0, 1, 0, 0, &grid1_ic, F_GRID1, set_grid, set_grid, S_TOG, },
X  	{ 0, 1, 0, 0, &grid2_ic, F_GRID2, set_grid, set_grid, S_TOG, },
X  	{ 1, 2, 0, 0, &unconstraint_ic, F_UNCONSTRAINT, set_geometry, null_proc, S_ON, },
X
X--- 146,152 -----
X  #ifndef TFX
X  	/* place holders to align some button groups */
X  	{ 0, -1, 0, 0, &blank_ic, F_NOP, null_proc, null_proc, S_MOMENT, },
X! #endif
X  	{ 0, 1, 0, 0, &grid1_ic, F_GRID1, set_grid, set_grid, S_TOG, },
X  	{ 0, 1, 0, 0, &grid2_ic, F_GRID2, set_grid, set_grid, S_TOG, },
X  	{ 1, 2, 0, 0, &unconstraint_ic, F_UNCONSTRAINT, set_geometry, null_proc, S_ON, },
X***************
X*** 139,146
X  	{ 0, 2, 0, 0, &mounthattan_ic, F_MOUNTHATTAN, set_geometry, null_proc, S_ON, },
X  	{ 0, 2, 0, 0, &manhattan_ic, F_MANHATTAN, set_geometry, null_proc, S_ON, },
X  	{ 0, 2, 0, 0, &mountain_ic, F_MOUNTAIN, set_geometry, null_proc, S_ON, },
X! 	/* Yuck. Latex */
X! 	/****************
X  	{ 0, 2, 0, 0, &latexline_ic, F_LATEX_LINE, set_geometry, null_proc, S_ON, },
X  	{ 0, 2, 0, 0, &latexarrow_ic, F_LATEX_ARROW, set_geometry, null_proc, S_ON, },
X  	*****************/
X
X--- 153,159 -----
X  	{ 0, 2, 0, 0, &mounthattan_ic, F_MOUNTHATTAN, set_geometry, null_proc, S_ON, },
X  	{ 0, 2, 0, 0, &manhattan_ic, F_MANHATTAN, set_geometry, null_proc, S_ON, },
X  	{ 0, 2, 0, 0, &mountain_ic, F_MOUNTAIN, set_geometry, null_proc, S_ON, },
X! #ifdef TFX
X  	{ 0, 2, 0, 0, &latexline_ic, F_LATEX_LINE, set_geometry, null_proc, S_ON, },
X  	{ 0, 2, 0, 0, &latexarrow_ic, F_LATEX_ARROW, set_geometry, null_proc, S_ON, },
X  #endif
X***************
X*** 143,149
X  	/****************
X  	{ 0, 2, 0, 0, &latexline_ic, F_LATEX_LINE, set_geometry, null_proc, S_ON, },
X  	{ 0, 2, 0, 0, &latexarrow_ic, F_LATEX_ARROW, set_geometry, null_proc, S_ON, },
X! 	*****************/
X  	{ 1,  3, 0, 0, &solidline_ic, F_SET_SOLID_LINE, set_style, null_proc, S_ON, },
X  	{ 0,  3, 0, 0, &dashline_ic, F_SET_DASH_LINE, set_style, null_proc, S_ON, },
X  	{ 0,  3, 0, 0, &dottedline_ic, F_SET_DOTTED_LINE, set_style, null_proc, S_ON, },
X
X--- 156,162 -----
X  #ifdef TFX
X  	{ 0, 2, 0, 0, &latexline_ic, F_LATEX_LINE, set_geometry, null_proc, S_ON, },
X  	{ 0, 2, 0, 0, &latexarrow_ic, F_LATEX_ARROW, set_geometry, null_proc, S_ON, },
X! #endif
X  	{ 1,  3, 0, 0, &solidline_ic, F_SET_SOLID_LINE, set_style, null_proc, S_ON, },
X  	{ 0,  3, 0, 0, &dashline_ic, F_SET_DASH_LINE, set_style, null_proc, S_ON, },
X  	{ 0,  3, 0, 0, &dottedline_ic, F_SET_DOTTED_LINE, set_style, null_proc, S_ON, },
X***************
X*** 201,207
X  	/*  4 */ { XtNhSpace, (XtArgVal)SWITCH_ICON_SPACING },
X  	/*  5 */ { XtNvSpace, (XtArgVal)SWITCH_ICON_SPACING },
X  	/* Fix the size of the panel window by chaining both top & bottom
X! 	   to the top, and both left & right to the right */
X  	/*  6 */ { XtNtop, (XtArgVal)XtChainTop},
X  	/*  7 */ { XtNbottom, (XtArgVal)XtChainTop},
X  	/*  8 */ { XtNleft, (XtArgVal)XtChainLeft },
X
X--- 214,221 -----
X  	/*  4 */ { XtNhSpace, (XtArgVal)SWITCH_ICON_SPACING },
X  	/*  5 */ { XtNvSpace, (XtArgVal)SWITCH_ICON_SPACING },
X  	/* Fix the size of the panel window by chaining both top & bottom
X! 	   to the top of the form, and both left & right to the right.
X! 	   If RHS_PANEL, then chain left/right to RIGHT of form */
X  	/*  6 */ { XtNtop, (XtArgVal)XtChainTop},
X  	/*  7 */ { XtNbottom, (XtArgVal)XtChainTop},
X  	/*  8 */ { XtNleft, (XtArgVal)XtChainLeft },
X***************
X*** 220,226
X  	/* 6 */ { XtNresizable, (XtArgVal) FALSE },
X  	/* 7 */ { XtNfromHoriz, (XtArgVal) NULL },
X  	/* 8 */ { XtNfromVert, (XtArgVal) NULL },
X! 	/* 9 */ { XtNhorizDistance, (XtArgVal) -3*SWITCH_ICON_WIDTH - 6*SWITCH_ICON_SPACING },
X  	/* 10 */ { XtNvertDistance, (XtArgVal) 1 },
X  	/* Fix the size of the panel window by chaining both top & bottom
X  	   to the top, and both left & right to the right */
X
X--- 234,240 -----
X  	/* 6 */ { XtNresizable, (XtArgVal) FALSE },
X  	/* 7 */ { XtNfromHoriz, (XtArgVal) NULL },
X  	/* 8 */ { XtNfromVert, (XtArgVal) NULL },
X! 	/* 9 */ { XtNhorizDistance, (XtArgVal) SWITCH_ICON_SPACING },
X  	/* 10 */ { XtNvertDistance, (XtArgVal) 1 },
X  	/* Fix the size of the panel window by chaining both top & bottom
X  	   to the top of the form, and both left & right to the right */
X***************
X*** 223,229
X  	/* 9 */ { XtNhorizDistance, (XtArgVal) -3*SWITCH_ICON_WIDTH - 6*SWITCH_ICON_SPACING },
X  	/* 10 */ { XtNvertDistance, (XtArgVal) 1 },
X  	/* Fix the size of the panel window by chaining both top & bottom
X! 	   to the top, and both left & right to the right */
X  	/* 11 */ { XtNtop, (XtArgVal)XtChainBottom},
X  	/* 12 */ { XtNbottom, (XtArgVal)XtChainBottom},
X  	/* 13 */ { XtNleft, (XtArgVal)XtChainLeft },
X
X--- 237,243 -----
X  	/* 9 */ { XtNhorizDistance, (XtArgVal) SWITCH_ICON_SPACING },
X  	/* 10 */ { XtNvertDistance, (XtArgVal) 1 },
X  	/* Fix the size of the panel window by chaining both top & bottom
X! 	   to the top of the form, and both left & right to the right */
X  	/* 11 */ { XtNtop, (XtArgVal)XtChainBottom},
X  	/* 12 */ { XtNbottom, (XtArgVal)XtChainBottom},
X  	/* 13 */ { XtNleft, (XtArgVal)XtChainLeft },
X***************
X*** 230,235
X  	/* 14 */ { XtNright, (XtArgVal)XtChainLeft },
X  };
X  
X  /* widget arguments to show the current fill color and line thickness*/
X  
X  static Arg	indicator_panel_args[] =
X
X--- 244,268 -----
X  	/* 14 */ { XtNright, (XtArgVal)XtChainLeft },
X  };
X  
X+ static Arg	ind_box_args[] =
X+ {
X+ 	/*  0 */ { XtNx, (XtArgVal)0 },
X+ 	/*  1 */ { XtNy, (XtArgVal)0 },
X+ 	/*  2 */ { XtNwidth, (XtArgVal)0 },
X+ 	/*  3 */ { XtNheight, (XtArgVal)0 },
X+ 	/*  4 */ { XtNhSpace, (XtArgVal)SWITCH_ICON_SPACING },
X+ 	/*  5 */ { XtNvSpace, (XtArgVal)SWITCH_ICON_SPACING },
X+ 	/*  6 */ { XtNfromVert, (XtArgVal) NULL },
X+ 	/*  7 */ { XtNvertDistance, (XtArgVal) SWITCH_ICON_SPACING },
X+ 	/* Fix the size of the panel window by chaining both top & bottom
X+ 	   to the top of the form, and both left & right to the right
X+ 	   If RHS_PANEL, then chain left/right to RIGHT of form */
X+ 	/*  8 */ { XtNtop, (XtArgVal)XtChainTop},
X+ 	/*  9 */ { XtNbottom, (XtArgVal)XtChainTop},
X+ 	/* 10 */ { XtNleft, (XtArgVal)XtChainLeft },
X+ 	/* 11 */ { XtNright, (XtArgVal)XtChainLeft },
X+ };
X+ 
X  /* widget arguments to show the current fill color and line thickness*/
X  
X  static Arg	indicator_panel_args[] =
X***************
X*** 241,257
X  	/*  4 */ { XtNheight, (XtArgVal) SWITCH_ICON_HEIGHT },
X  	/*  5 */ { XtNresizable, (XtArgVal) FALSE },
X  	/*  6 */ { XtNborderWidth, (XtArgVal) 1},
X! 	/*  7 */ { XtNhorizDistance, (XtArgVal) 0 },
X! 	/*  8 */ { XtNvertDistance, (XtArgVal) 0 },
X! 	/*  9 */ { XtNfromHoriz, (XtArgVal) NULL },
X! 	/* 10 */ { XtNfromVert, (XtArgVal) NULL },
X! 	/* Fix the size of the panel window by chaining both top & bottom
X! 	   to the top, and both left & right to the right */
X! 	/* 11 */ { XtNtop, (XtArgVal)XtChainTop},
X! 	/* 12 */ { XtNbottom, (XtArgVal)XtChainTop},
X! 	/* 13 */ { XtNleft, (XtArgVal)XtChainLeft },
X! 	/* 14 */ { XtNright, (XtArgVal)XtChainLeft },
X! 	/* 15 */ { XtNbackgroundPixmap, (XtArgVal) NULL },
X  };
X  
X  extern void button_select();
X
X--- 274,280 -----
X  	/*  4 */ { XtNheight, (XtArgVal) SWITCH_ICON_HEIGHT },
X  	/*  5 */ { XtNresizable, (XtArgVal) FALSE },
X  	/*  6 */ { XtNborderWidth, (XtArgVal) 1},
X! 	/*  7 */ { XtNbackgroundPixmap, (XtArgVal) NULL },
X  };
X  
X  static void button_select();
X***************
X*** 254,260
X  	/* 15 */ { XtNbackgroundPixmap, (XtArgVal) NULL },
X  };
X  
X! extern void button_select();
X  
X  /* we aren't using the callback anymore - see sel_but() */
X  static XtCallbackRec    button_callbacks[] =
X
X--- 277,283 -----
X  	/*  7 */ { XtNbackgroundPixmap, (XtArgVal) NULL },
X  };
X  
X! static void button_select();
X  
X  /* we aren't using the callback anymore - see sel_but() */
X  static XtCallbackRec    button_callbacks[] =
X***************
X*** 285,291
X  extern int	PANEL2_LEFT, PANEL2_TOP, PANEL2_HEIGHT, PANEL2_WID;
X  extern int	CANVAS_HEIGHT, ICON_COLUMN;
X  
X! extern right_but();
X  
X  /* button selection event handler */
X  extern sel_but();
X
X--- 308,314 -----
X  extern int	PANEL2_LEFT, PANEL2_TOP, PANEL2_HEIGHT, PANEL2_WID;
X  extern int	CANVAS_HEIGHT, ICON_COLUMN;
X  
X! static right_but();
X  
X  /* button selection event handler */
X  static sel_but();
X***************
X*** 288,294
X  extern right_but();
X  
X  /* button selection event handler */
X! extern sel_but();
X  
X  int 
X  init_panel(tool)
X
X--- 311,317 -----
X  static right_but();
X  
X  /* button selection event handler */
X! static sel_but();
X  
X  int 
X  init_panel(tool)
X***************
X*** 297,302
X  	register int		i;
X  	register F_switch	*sw;
X  
X  	panel_args[2].value = PANEL_WID =
X  		(SWITCH_ICON_WIDTH + 2 + SWITCH_ICON_SPACING) * ICON_COLUMN
X  		+ SWITCH_ICON_SPACING;
X
X--- 320,326 -----
X  	register int		i;
X  	register F_switch	*sw;
X  
X+ 	/* width */
X  	panel_args[2].value = PANEL_WID =
X  		(SWITCH_ICON_WIDTH + 2 + SWITCH_ICON_SPACING) * ICON_COLUMN
X  		+ SWITCH_ICON_SPACING;
X***************
X*** 300,305
X  	panel_args[2].value = PANEL_WID =
X  		(SWITCH_ICON_WIDTH + 2 + SWITCH_ICON_SPACING) * ICON_COLUMN
X  		+ SWITCH_ICON_SPACING;
X  	panel_args[3].value = PANEL_HEIGHT = CANVAS_HEIGHT + RULER_WIDTH + MSG_HEIGHT;
X  	panel_sw = XtCreateWidget("panel", boxWidgetClass, tool, panel_args,
X  		XtNumber(panel_args));
X
X--- 324,330 -----
X  	panel_args[2].value = PANEL_WID =
X  		(SWITCH_ICON_WIDTH + 2 + SWITCH_ICON_SPACING) * ICON_COLUMN
X  		+ SWITCH_ICON_SPACING;
X+ 	/* height */
X  	panel_args[3].value = PANEL_HEIGHT = CANVAS_HEIGHT + RULER_WIDTH + MSG_HEIGHT;
X  	panel_sw = XtCreateWidget("panel", boxWidgetClass, tool, panel_args,
X  		XtNumber(panel_args));
X***************
X*** 314,320
X  		sw->but.widget = XtCreateManagedWidget(
X  			"button", commandWidgetClass,
X  			panel_sw, button_args, XtNumber(button_args));
X! 		/* allow left and right buttons (callbacks pass same data for ANY button) */
X  		XtAddEventHandler(sw->but.widget,ButtonPressMask,(Boolean) 0, 
X  			sel_but, (caddr_t) sw);
X  	}
X
X--- 339,345 -----
X  		sw->but.widget = XtCreateManagedWidget(
X  			"button", commandWidgetClass,
X  			panel_sw, button_args, XtNumber(button_args));
X! 		/* allow left & right buttons (callbacks pass same data for ANY button) */
X  		XtAddEventHandler(sw->but.widget,ButtonPressMask,(Boolean) 0, 
X  			sel_but, (caddr_t) sw);
X  	}
X***************
X*** 333,341
X  	panel2_args[2].value = PANEL2_WID = 2 * N_SWITCHES2 *
X  			(SWITCH_ICON_WIDTH + SWITCH_ICON_SPACING)
X  			+ SWITCH_ICON_SPACING;
X! 	panel2_args[3].value = PANEL2_HEIGHT = SWITCH_ICON_HEIGHT + 3 * SWITCH_ICON_SPACING;
X! 	panel2_args[7].value = (XtArgVal) panel_sw;	/* horiz offset from panel_sw */
X! 	panel2_args[8].value = (XtArgVal) psfont;	/* vert offset from font window */
X  
X  	panel2_sw = XtCreateWidget("panel2", boxWidgetClass, tool, panel2_args,
X  		XtNumber(panel2_args));
X
X--- 358,365 -----
X  	panel2_args[2].value = PANEL2_WID = 2 * N_SWITCHES2 *
X  			(SWITCH_ICON_WIDTH + SWITCH_ICON_SPACING)
X  			+ SWITCH_ICON_SPACING;
X! 	panel2_args[3].value=PANEL2_HEIGHT= SWITCH_ICON_HEIGHT + 3*SWITCH_ICON_SPACING;
X! 	panel2_args[8].value = (XtArgVal) psfont;  /* vert offset from font window */
X  
X  	panel2_sw = XtCreateWidget("bottom_panel", boxWidgetClass, tool, panel2_args,
X  		XtNumber(panel2_args));
X***************
X*** 337,343
X  	panel2_args[7].value = (XtArgVal) panel_sw;	/* horiz offset from panel_sw */
X  	panel2_args[8].value = (XtArgVal) psfont;	/* vert offset from font window */
X  
X! 	panel2_sw = XtCreateWidget("panel2", boxWidgetClass, tool, panel2_args,
X  		XtNumber(panel2_args));
X  	for (i = 0; i < N_SWITCHES2; ++i)
X  	{
X
X--- 361,367 -----
X  	panel2_args[3].value=PANEL2_HEIGHT= SWITCH_ICON_HEIGHT + 3*SWITCH_ICON_SPACING;
X  	panel2_args[8].value = (XtArgVal) psfont;  /* vert offset from font window */
X  
X! 	panel2_sw = XtCreateWidget("bottom_panel", boxWidgetClass, tool, panel2_args,
X  		XtNumber(panel2_args));
X  	for (i = 0; i < N_SWITCHES2; ++i)
X  	{
X***************
X*** 356,361
X  	return (1);
X  }
X  
X  init_indicator_panel(tool)
X  TOOL tool;
X  	{
X
X--- 380,387 -----
X  	return (1);
X  }
X  
X+ Widget ind_box;
X+ 
X  init_indicator_panel(tool)
X  TOOL tool;
X  	{
X***************
X*** 359,369
X  init_indicator_panel(tool)
X  TOOL tool;
X  	{
X! 		/* vert position */
X! 		indicator_panel_args[8].value = (XtArgVal) 2*SWITCH_ICON_SPACING;
X! 		indicator_panel_args[9].value = (XtArgVal) panel_sw;
X! 		indicator_panel_args[10].value = (XtArgVal) panel_sw;
X! 		indicator_panel_args[15].value = (XtArgVal) ind_fill_pm[0];/* white pixmap */
X  
X  		/* horiz position for line thickness indicator */
X  		indicator_panel_args[7].value = (XtArgVal) 
X
X--- 385,395 -----
X  init_indicator_panel(tool)
X  TOOL tool;
X  	{
X! 	/* width */
X! 	ind_box_args[2].value = 
X! 		(SWITCH_ICON_WIDTH + 2 + SWITCH_ICON_SPACING)*3 + SWITCH_ICON_SPACING;
X! 	/* height */
X! 	ind_box_args[3].value = SWITCH_ICON_HEIGHT+2*SWITCH_ICON_SPACING;
X  
X  	/* put below bottom of panel_sw */
X  	ind_box_args[6].value = (XtArgVal) panel_sw;
X***************
X*** 365,375
X  		indicator_panel_args[10].value = (XtArgVal) panel_sw;
X  		indicator_panel_args[15].value = (XtArgVal) ind_fill_pm[0];/* white pixmap */
X  
X! 		/* horiz position for line thickness indicator */
X! 		indicator_panel_args[7].value = (XtArgVal) 
X! 			-SWITCH_ICON_WIDTH*ICON_COLUMN - SWITCH_ICON_SPACING*(ICON_COLUMN+2);
X! 		line_thick_panel = XtCreateManagedWidget( "indicator", boxWidgetClass,
X! 			tool, indicator_panel_args, XtNumber(indicator_panel_args));
X  
X  		/* horiz position for rounded-corner box radius indicator */
X  		indicator_panel_args[7].value += SWITCH_ICON_WIDTH+1.5*SWITCH_ICON_SPACING;
X
X--- 391,398 -----
X  	/* height */
X  	ind_box_args[3].value = SWITCH_ICON_HEIGHT+2*SWITCH_ICON_SPACING;
X  
X! 	/* put below bottom of panel_sw */
X! 	ind_box_args[6].value = (XtArgVal) panel_sw;
X  
X  	ind_box = XtCreateWidget("indicator", boxWidgetClass, tool, ind_box_args,
X  		XtNumber(ind_box_args));
X***************
X*** 371,385
X  		line_thick_panel = XtCreateManagedWidget( "indicator", boxWidgetClass,
X  			tool, indicator_panel_args, XtNumber(indicator_panel_args));
X  
X! 		/* horiz position for rounded-corner box radius indicator */
X! 		indicator_panel_args[7].value += SWITCH_ICON_WIDTH+1.5*SWITCH_ICON_SPACING;
X! 		radius_panel = XtCreateManagedWidget( "indicator", boxWidgetClass,
X! 			tool, indicator_panel_args, XtNumber(indicator_panel_args));
X! 				
X! 		/* horiz position for fill_area color */
X! 		indicator_panel_args[7].value += SWITCH_ICON_WIDTH+1.5*SWITCH_ICON_SPACING;
X! 		fill_panel = XtCreateManagedWidget( "indicator", boxWidgetClass,
X! 			tool, indicator_panel_args, XtNumber(indicator_panel_args));
X  	}
X  
X  static GC button_gc;
X
X--- 394,418 -----
X  	/* put below bottom of panel_sw */
X  	ind_box_args[6].value = (XtArgVal) panel_sw;
X  
X! 	ind_box = XtCreateWidget("indicator", boxWidgetClass, tool, ind_box_args,
X! 		XtNumber(ind_box_args));
X! 
X! 	indicator_panel_args[7].value = (XtArgVal) ind_fill_pm[0];/* white pixmap */
X! 
X! 	/* horiz position for line thickness indicator */
X! 	indicator_panel_args[0].value = (XtArgVal) SWITCH_ICON_SPACING;
X! 	line_thick_panel = XtCreateManagedWidget( "linewidth_indicator", boxWidgetClass,
X! 		ind_box, indicator_panel_args, XtNumber(indicator_panel_args));
X! 
X! 	/* horiz position for rounded-corner box radius indicator */
X! 	indicator_panel_args[0].value += SWITCH_ICON_WIDTH+SWITCH_ICON_SPACING;
X! 	radius_panel = XtCreateManagedWidget( "radius_indicator", boxWidgetClass,
X! 		ind_box, indicator_panel_args, XtNumber(indicator_panel_args));
X! 			
X! 	/* horiz position for fill_area color */
X! 	indicator_panel_args[0].value += SWITCH_ICON_WIDTH+SWITCH_ICON_SPACING;
X! 	fill_panel = XtCreateManagedWidget( "fill_indicator", boxWidgetClass,
X! 		ind_box, indicator_panel_args, XtNumber(indicator_panel_args));
X  	}
X  
X  static GC button_gc;
X***************
X*** 384,389
X  
X  static GC button_gc;
X  
X  setup_panel()
X  {
X  	register int		i;
X
X--- 417,424 -----
X  
X  static GC button_gc;
X  
X+ /* come here after panel widget is realized to put some bitmaps etc. things in it */
X+ 
X  setup_panel()
X  {
X  	register int		i;
X***************
X*** 1043,1050
X  	   then giving it the modified one again.  Otherwise, it sees
X  	   that the pixmap ID is not changed and doesn't actually draw
X  	   it into the widget window */
X! 	indicator_panel_args[15].value = 0;
X! 	XtSetValues(line_thick_panel, &indicator_panel_args[15], 1);
X  
X  	/* put the pixmap in the widget background */
X  	indicator_panel_args[15].value = line_pm;
X
X--- 1078,1085 -----
X  	   then giving it the modified one again.  Otherwise, it sees
X  	   that the pixmap ID is not changed and doesn't actually draw
X  	   it into the widget window */
X! 	indicator_panel_args[7].value = 0;
X! 	XtSetValues(line_thick_panel, &indicator_panel_args[7], 1);
X  
X  	/* put the pixmap in the widget background */
X  	indicator_panel_args[7].value = line_pm;
X***************
X*** 1047,1054
X  	XtSetValues(line_thick_panel, &indicator_panel_args[15], 1);
X  
X  	/* put the pixmap in the widget background */
X! 	indicator_panel_args[15].value = line_pm;
X! 	XtSetValues(line_thick_panel, &indicator_panel_args[15], 1);
X  	put_msg("LINE Thickness = %d",line_thickness);
X  	}
X  
X
X--- 1082,1089 -----
X  	XtSetValues(line_thick_panel, &indicator_panel_args[7], 1);
X  
X  	/* put the pixmap in the widget background */
X! 	indicator_panel_args[7].value = line_pm;
X! 	XtSetValues(line_thick_panel, &indicator_panel_args[7], 1);
X  	put_msg("LINE Thickness = %d",line_thickness);
X  	}
X  
X***************
X*** 1094,1101
X  	   then giving it the modified one again.  Otherwise, it sees
X  	   that the pixmap ID is not changed and doesn't actually draw
X  	   it into the widget window */
X! 	indicator_panel_args[15].value = 0;
X! 	XtSetValues(radius_panel, &indicator_panel_args[15], 1);
X  
X  	/* put the pixmap in the widget background */
X  	indicator_panel_args[15].value = radius_pm;
X
X--- 1129,1136 -----
X  	   then giving it the modified one again.  Otherwise, it sees
X  	   that the pixmap ID is not changed and doesn't actually draw
X  	   it into the widget window */
X! 	indicator_panel_args[7].value = 0;
X! 	XtSetValues(radius_panel, &indicator_panel_args[7], 1);
X  
X  	/* put the pixmap in the widget background */
X  	indicator_panel_args[7].value = radius_pm;
X***************
X*** 1098,1105
X  	XtSetValues(radius_panel, &indicator_panel_args[15], 1);
X  
X  	/* put the pixmap in the widget background */
X! 	indicator_panel_args[15].value = radius_pm;
X! 	XtSetValues(radius_panel, &indicator_panel_args[15], 1);
X  	put_msg("ROUNDED-CORNER BOX Radius = %d",cur_radius);
X  	}
X  
X
X--- 1133,1140 -----
X  	XtSetValues(radius_panel, &indicator_panel_args[7], 1);
X  
X  	/* put the pixmap in the widget background */
X! 	indicator_panel_args[7].value = radius_pm;
X! 	XtSetValues(radius_panel, &indicator_panel_args[7], 1);
X  	put_msg("ROUNDED-CORNER BOX Radius = %d",cur_radius);
X  	}
X  
X***************
X*** 1122,1129
X  show_fill_color()
X  	{
X  	/* put fill pixmap in widget background */
X! 	indicator_panel_args[15].value = ind_fill_pm[cur_areafill-1]; 
X! 	XtSetValues(fill_panel, &indicator_panel_args[15], 1);
X  	put_fmsg("FILL GRAY = %.2f", 1.0-(cur_areafill-1.0)/(NUMFILLPATS-1.0));
X  	}
X  
X
X--- 1157,1164 -----
X  show_fill_color()
X  	{
X  	/* put fill pixmap in widget background */
X! 	indicator_panel_args[7].value = ind_fill_pm[cur_areafill-1]; 
X! 	XtSetValues(fill_panel, &indicator_panel_args[7], 1);
X  	put_fmsg("FILL GRAY = %.2f", 1.0-(cur_areafill-1.0)/(NUMFILLPATS-1.0));
X  	}
X  
X***************
X*** 1181,1187
X  edit_button(sw)
X  F_switch *sw;
X  	{
X! 	init_msg_receiving(edit_file, "Edit file : ");
X  	}
X  
X  /* change directories */
X
X--- 1216,1222 -----
X  edit_button(sw)
X  F_switch *sw;
X  	{
X! 	edit();
X  	}
X  
X  /* change directories */
X***************
X*** 1231,1236
X  	printer=printer_list[cur_printer];
X  	put_msg("SELECT PRINTER: %s",printer);
X  
X  	/* write the printer name in the background pixmap */
X  	XDrawImageString(tool_d, print_sel_pm, button_gc, 
X  			32, 14, printer, strlen(printer));
X
X--- 1266,1274 -----
X  	printer=printer_list[cur_printer];
X  	put_msg("SELECT PRINTER: %s",printer);
X  
X+ 	/* first erase any existing string in pixmap */
X+ 	XDrawImageString(tool_d, print_sel_pm, button_gc, 
X+ 			6, 28, "        ", 8);
X  	/* write the printer name in the background pixmap */
X  	XDrawImageString(tool_d, print_sel_pm, button_gc, 
X  			6, 28, printer, strlen(printer));
X***************
X*** 1233,1239
X  
X  	/* write the printer name in the background pixmap */
X  	XDrawImageString(tool_d, print_sel_pm, button_gc, 
X! 			32, 14, printer, strlen(printer));
X  
X  	/* Fool the toolkit by changing the background pixmap to 0
X  	   then giving it the modified one again.  Otherwise, it sees
X
X--- 1271,1277 -----
X  			6, 28, "        ", 8);
X  	/* write the printer name in the background pixmap */
X  	XDrawImageString(tool_d, print_sel_pm, button_gc, 
X! 			6, 28, printer, strlen(printer));
X  
X  	/* Fool the toolkit by changing the background pixmap to 0
X  	   then giving it the modified one again.  Otherwise, it sees
END_OF_FILE
if test 29567 -ne `wc -c <'panel.c.diff'`; then
    echo shar: \"'panel.c.diff'\" unpacked with wrong size!
fi
# end of 'panel.c.diff'
fi
echo shar: End of archive 3 \(of 3\).
cp /dev/null ark3isdone
MISSING=""
for I in 1 2 3 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 3 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

dan
-----------------------------------------------------------
		    O'Reilly && Associates
		argv@sun.com / argv@ora.com
	   632 Petaluma Ave, Sebastopol, CA 95472 
     800-338-NUTS, in CA: 800-533-NUTS, FAX 707-829-0104
    Opinions expressed reflect those of the author only.