v07i084: xmail -- Mail front end for X11, Patch1, Part04/06

news news at sun.Eng.Sun.COM
Fri Jun 1 13:41:40 AEST 1990


Submitted-by: parns.nsc.com!michael (Michael C. Wagnitz)
Posting-number: Volume 7, Issue 84
Archive-name: xmail/patch1.04
Patch-To: xmail: Volume 6, Issue 41-46

#! /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 4 (of 5)."
# Contents:  Patch.01d
# Wrapped by michael at harley on Tue May 29 10:33:51 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'Patch.01d' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Patch.01d'\"
else
echo shar: Extracting \"'Patch.01d'\" \(47115 characters\)
sed "s/^X//" >'Patch.01d' <<'END_OF_FILE'
X+  XtTextBlock 	textblock;
X+  XtTextPosition	pos;
X+  Widget		w = WidgetOf(WidgetOf(toplevel, "topBox"), "indexWindow");
X+ 
X+ 
X+  pos = XtTextGetInsertionPoint(w) + 1;
X+ 
X+  XtTextSetInsertionPoint(w, pos);
X+ 
X+  textblock.firstPos = 0;
X+  textblock.length   = 1;
X+  textblock.ptr      = s;
X+  textblock.format   = FMT8BIT;
X+ 
X+  XtTextReplace(w, pos, pos + 1, &textblock);
X+ 
X+  XtTextSetInsertionPoint(w, pos);
X+ 
X+  SetSelect(w, NULL, NULL, NULL);
X+ } /* markIndex */
X+ 
X+ 
X+ /*
X  ** @(#)Normalize() - Position insertion pointer at end of any text
X  */
X  void
X***************
X*** 73,78 ****
X--- 104,110 ----
X   XtTextPosition lastPos;
X  
X  
X+  XtTextSetInsertionPoint(w, 0);
X   lastPos = TextGetLastPos(w);
X   XtTextSetInsertionPoint(w, lastPos);
X  /*
X***************
X*** 94,107 ****
X  {
X   XtTextBlock 	textblock;
X   XtTextPosition	startPos, endPos;
X!  Arg            args[MAXARGS];
X   int		status;
X  
X  
X   if (!s || strcmp(s, "") == 0) return;
X  
X! #ifndef X11R3
X!  if (w == WidgetOf(WidgetOf(toplevel, "vpane"), "indexWindow"))
X      if (strlen(s) > INDEXSIZE) {
X         INDEXSIZE = strlen(s) + 1;
X         IndexBuf = XtRealloc(IndexBuf, INDEXSIZE);
X--- 126,139 ----
X  {
X   XtTextBlock 	textblock;
X   XtTextPosition	startPos, endPos;
X!  Arg            args[2];
X   int		status;
X  
X  
X   if (!s || strcmp(s, "") == 0) return;
X  
X! #if XtSpecificationRelease >= 4
X!  if (w == WidgetOf(WidgetOf(toplevel, "topBox"), "indexWindow"))
X      if (strlen(s) > INDEXSIZE) {
X         INDEXSIZE = strlen(s) + 1;
X         IndexBuf = XtRealloc(IndexBuf, INDEXSIZE);
X***************
X*** 134,142 ****
X  {
X   int	j = 0;			/* return zero if no valid message exists */
X   char	*s;
X   
X   for (s = IndexBuf + pos; s > IndexBuf && *(s-1) != '\n'; s--);
X!  for (s++; *s && !isdigit(*s); s++);
X   sscanf(s, "%d", &j);
X   return j;
X  } /* PositionToMsgNumber */
X--- 166,178 ----
X  {
X   int	j = 0;			/* return zero if no valid message exists */
X   char	*s;
X+  XtTextPosition newpos;
X   
X   for (s = IndexBuf + pos; s > IndexBuf && *(s-1) != '\n'; s--);
X!  newpos = s - IndexBuf;
X!  XtTextSetInsertionPoint(WidgetOf(WidgetOf(toplevel, "topBox"), "indexWindow"),
X!                          newpos);	/* reset insertion marker to front */
X!  for (; *s && !isdigit(*s); s++);
X   sscanf(s, "%d", &j);
X   return j;
X  } /* PositionToMsgNumber */
X***************
X*** 150,169 ****
X  String	msg;
X  {
X   Arg	args[1];
X!  char	*p, *strchr();
X   int	worthy = 0;			/* only msgs with ending newline are */
X  
X  
X!  if ((p = strchr(msg, '\n')) != NULL) {	/* Only display first line of output */
X      *p = '\0';				/* (and no new line at end of label) */
X      worthy = 1;
X     }
X  
X!  XtSetArg(args[0], XtNlabel, (XtArgVal) msg);	/* show the error message */
X!  XtSetValues(WidgetOf(WidgetOf(toplevel, "vpane"), "statusWindow"), args, ONE);
X  
X   if (worthy && XMail.bellRing)		/* ring bell if not silenced by user */
X!     XBell(XtDisplay(toplevel), 33);
X  } /* Bell */
X  
X  
X--- 186,209 ----
X  String	msg;
X  {
X   Arg	args[1];
X!  char	*p, *index();
X!  char	buf[BUFSIZ];
X   int	worthy = 0;			/* only msgs with ending newline are */
X  
X  
X!  (void) strncpy(buf, msg, BUFSIZ - 1);
X!  buf[BUFSIZ - 1] = '\0';
X! 
X!  if ((p = index(buf, '\n')) != NULL) {	/* Only display first line of output */
X      *p = '\0';				/* (and no new line at end of label) */
X      worthy = 1;
X     }
X  
X!  XtSetArg(args[0], XtNlabel, (XtArgVal) buf);	/* show the error message */
X!  XtSetValues(WidgetOf(WidgetOf(toplevel, "topBox"), "statusWindow"), args, ONE);
X  
X   if (worthy && XMail.bellRing)		/* ring bell if not silenced by user */
X!     XBell (XtDisplay (toplevel), 33);
X  } /* Bell */
X  
X  
X***************
X*** 170,176 ****
X  /*
X  ** @(#)UpdateTitleBar() - replace information in the title bar label
X  */
X! void
X  UpdateTitleBar(format, arg)
X  char *format, *arg;
X  {
X--- 210,216 ----
X  /*
X  ** @(#)UpdateTitleBar() - replace information in the title bar label
X  */
X! int
X  UpdateTitleBar(format, arg)
X  char *format, *arg;
X  {
X***************
X*** 179,198 ****
X   Widget		w, m;
X  
X  
X!  w = WidgetOf(WidgetOf(WidgetOf(toplevel, "vpane"), "titleBar"), "titleBar");
X  
X   sprintf(string, format, arg);
X!  sprintf(message, "%s - %s", TITLE, string);
X   XtSetArg(args[0], XtNlabel, (XtArgVal) message);
X   XtSetValues(w, args, ONE);
X   
X!  w = WidgetOf(WidgetOf(WidgetOf(toplevel, "vpane"), "commandPanel"), "hold");
X!     XtSetSensitive(w, (string[1] == '+') ? False : True);
X! 
X!  w = WidgetOf(WidgetOf(WidgetOf(toplevel,"vpane"),"commandPanel"),"Newmail");
X   m = WidgetOf(WidgetOf(WidgetOf(w, "Newmail_menu"), "menu"), "inc");
X   if (m)
X      XtSetSensitive(m, (string[1] == '+') ? False : True);
X  } /* UpdateTitleBar */
X  
X  
X--- 219,236 ----
X   Widget		w, m;
X  
X  
X!  w = WidgetOf(WidgetOf(WidgetOf(toplevel, "topBox"), "titleBar"), "titleBar");
X  
X   sprintf(string, format, arg);
X!  sprintf(message, "%s%d - %s", TITLE, PATCHLEVEL, string);
X   XtSetArg(args[0], XtNlabel, (XtArgVal) message);
X   XtSetValues(w, args, ONE);
X   
X!  w = WidgetOf(WidgetOf(WidgetOf(toplevel,"topBox"),"commandPanel"),"Newmail");
X   m = WidgetOf(WidgetOf(WidgetOf(w, "Newmail_menu"), "menu"), "inc");
X   if (m)
X      XtSetSensitive(m, (string[1] == '+') ? False : True);
X+  return(1);				/* for use inside parse C_FILE/O_BELL */
X  } /* UpdateTitleBar */
X  
X  
X***************
X*** 204,223 ****
X  Widget	w;
X  char	*s;
X  {
X!  Arg 	args[MAXARGS];
X!  Cardinal 	n;
X!  static XtTextSource	old, new;
X  
X   if (s && *s) {
X!     n = 0;
X!     XtSetArg(args[n], XtNstring, (XtArgVal) s);			n++;
X!     XtSetArg(args[n], XtNlength, (XtArgVal) strlen(s));		n++;
X!     XtSetArg(args[n], XtNeditType, (XtArgVal) XttextRead);	n++;
X  
X!     new = XtStringSourceCreate(w, args, n);
X      XtTextSetSource(w, new, (XtTextPosition) 0);
X      if (old)
X         XtStringSourceDestroy(old);
X-     old = new;
X     }
X  } /* writeTo */
X--- 242,262 ----
X  Widget	w;
X  char	*s;
X  {
X!  Arg		args[4];
X!  XtTextSource	new;
X!  XtTextSource	old = NULL;
X  
X   if (s && *s) {
X!     old = XtTextGetSource(w);
X  
X!     XtSetArg(args[0], XtNstring, (XtArgVal) s);
X!     XtSetArg(args[1], XtNlength, (XtArgVal) strlen(s));
X!     XtSetArg(args[2], XtNeditType, (XtArgVal) XttextRead);
X! 
X!     new = XtStringSourceCreate(w, args, 3);
X      XtTextSetSource(w, new, (XtTextPosition) 0);
X+ 
X      if (old)
X         XtStringSourceDestroy(old);
X     }
X  } /* writeTo */
X*** ../v1.0/windows.c	Sun May 27 21:06:03 1990
X--- windows.c	Sun May 27 21:11:38 1990
X***************
X*** 40,45 ****
X--- 40,46 ----
X   *
X   * 1. AddHelpText:
X   * 2. AddMenuWindow:
X+  * 3. AddSetMenu:
X   * 4. CreateFolderButton: and
X   * 5. CreateInputWindow.
X   *
X***************
X*** 50,55 ****
X--- 51,57 ----
X  
X  #include "global.h"
X  #include "Mailwatch.h"
X+ #include "patchlevel.h"
X  #include "icon.mail"
X  #include "national.bm"
X  
X***************
X*** 63,70 ****
X  String	name;
X  String	help_text;
X  {
X!  Arg		args[MAXARGS];
X!  Cardinal 	indx, n;
X   XtTextSource	new;
X   char		trans[BUFSIZ];		
X  
X--- 65,72 ----
X  String	name;
X  String	help_text;
X  {
X!  Arg		args[4];
X!  Cardinal 	indx;
X   XtTextSource	new;
X   char		trans[BUFSIZ];		
X  
X***************
X*** 78,93 ****
X  
X      if (HelpNames[indx]) {
X         (void) sprintf(trans, p_Trans, name, name);
X!     XtOverrideTranslations(parent, XtParseTranslationTable(trans));
X  
X!     n = 0;
X!     XtSetArg(args[n], XtNstring, (XtArgVal) help_text);			n++;
X!     XtSetArg(args[n], XtNlength, (XtArgVal) strlen(help_text));		n++;
X!     XtSetArg(args[n], XtNeditType, (XtArgVal) XttextRead);		n++;
X  
X!        HelpStrings[indx] = XtStringSourceCreate(WidgetOf(WidgetOf(WidgetOf(toplevel, "vpane"), "help"), "helpWindow"), args, n);
X     }
X-    }
X  } /* AddHelpText */
X  
X  
X--- 80,94 ----
X  
X      if (HelpNames[indx]) {
X         (void) sprintf(trans, p_Trans, name, name);
X!        XtOverrideTranslations(parent, XtParseTranslationTable(trans));
X  
X!        XtSetArg(args[0], XtNstring, (XtArgVal) help_text);
X!        XtSetArg(args[1], XtNlength, (XtArgVal) strlen(help_text));
X!        XtSetArg(args[2], XtNeditType, (XtArgVal) XttextRead);
X  
X!        HelpStrings[indx] = XtStringSourceCreate(WidgetOf(WidgetOf(WidgetOf(toplevel,"topBox"),"help"),"helpWindow"),args,3);
X!       }
X     }
X  } /* AddHelpText */
X  
X  
X***************
X*** 101,107 ****
X  String		action;
X  menuList_p	*list;
X  {
X!  Arg	 	args[MAXARGS];
X   Cardinal	j, k, n, indx;
X   Widget		menu, layout, previous, next;
X   char		tag[BUFSIZ], trans[BUFSIZ], *c;		
X--- 102,108 ----
X  String		action;
X  menuList_p	*list;
X  {
X!  Arg	 	args[6];
X   Cardinal	j, k, n, indx;
X   Widget		menu, layout, previous, next;
X   char		tag[BUFSIZ], trans[BUFSIZ], *c;		
X***************
X*** 139,147 ****
X      XtSetArg(args[0], XtNtranslations, XtParseTranslationTable(trans));
X      menu = XtCreatePopupShell(tag, overrideShellWidgetClass, parent, args, ONE);
X  
X!     n = 0;
X!     XtSetArg(args[n], XtNdefaultDistance, 1);				n++;
X!     layout = XtCreateManagedWidget("menu", formWidgetClass, menu, args, n);
X  /*
X  ** Find widest label for this menu
X  */
X--- 140,147 ----
X      XtSetArg(args[0], XtNtranslations, XtParseTranslationTable(trans));
X      menu = XtCreatePopupShell(tag, overrideShellWidgetClass, parent, args, ONE);
X  
X!     XtSetArg(args[0], XtNdefaultDistance, (XtArgVal) 1);
X!     layout = XtCreateManagedWidget("menu", formWidgetClass, menu, args, ONE);
X  /*
X  ** Find widest label for this menu
X  */
X***************
X*** 150,188 ****
X             j = k;
X             n = indx;
X            }
X!     n = --indx;
X! /*
X! ** add length for accelerator keys menu notes
X! */
X!     indx = XTextWidth(TextFontStr, list[n]->label, j) + 12;
X!     if (n > 0)
X!        indx += XTextWidth(TextFontStr, Labels[n], strlen(Labels[n]));
X  
X!     n = 0;
X!     XtSetArg(args[n], XtNwidth, indx);					n++;
X!     XtSetArg(args[n], XtNfont, TextFontStr);				n++;
X!     XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(b_Trans)); n++;
X  /*
X  ** create the menu buttons
X  */
X      previous = NULL;
X!     for (indx = 0; list[indx] != NULL; indx++, n = 3) {
X!         strcpy(tag, list[indx]->label);		/* set window id from label */
X!         if ((c = (char *)index(tag, ' '))) *c = '\0';
X! 
X          sprintf(trans, "%-*.*s", j, j, list[indx]->label);
X- 
X          if (Labels[indx])			/* add accel. note if needed */
X             strcat(trans, Labels[indx]);
X-         else
X-            strcat(trans, "              ");	/* keep all labels aligned */
X  
X!         if (indx == 1 && list[indx + 1])	/* 2 option menu is narrower */
X!            strcat(trans, "      ");
X! 
X!         XtSetArg(args[n], XtNlabel, trans);				n++;
X!         XtSetArg(args[n], XtNfromVert, previous);			n++;
X!         next = XtCreateManagedWidget(tag, commandWidgetClass, layout, args, n);
X          XtAddCallback(next, XtNcallback, list[indx]->func, list[indx]->data);
X          previous = next;
X  
X--- 150,177 ----
X             j = k;
X             n = indx;
X            }
X!     k = XTextWidth(TextFontStr, list[n]->label, j) + 12;
X  
X!     if (--indx > 0)	/* add length for accelerator keys menu notes */
X!        k += XTextWidth(TextFontStr, Labels[indx], strlen(Labels[indx]));
X  /*
X  ** create the menu buttons
X  */
X      previous = NULL;
X!     XtSetArg(args[0], XtNwidth, k);
X!     XtSetArg(args[1], XtNfont, TextFontStr);
X!     XtSetArg(args[2], XtNjustify, XtJustifyLeft);
X!     XtSetArg(args[3], XtNtranslations, XtParseTranslationTable(b_Trans));
X!     for (indx = 0; list[indx] != NULL; indx++) {
X!         strcpy(tag, list[indx]->label);		/* set window name by label */
X!         if ((c = (char *)index(tag, ' '))) *c = '\0';	/* first word only */
X          sprintf(trans, "%-*.*s", j, j, list[indx]->label);
X          if (Labels[indx])			/* add accel. note if needed */
X             strcat(trans, Labels[indx]);
X  
X!         XtSetArg(args[4], XtNlabel, trans);
X!         XtSetArg(args[5], XtNfromVert, previous);
X!         next = XtCreateManagedWidget(tag, commandWidgetClass, layout, args, 6);
X          XtAddCallback(next, XtNcallback, list[indx]->func, list[indx]->data);
X          previous = next;
X  
X***************
X*** 189,197 ****
X  	if (L_Trans[indx]) {
X  	   sprintf(trans, L_Trans[indx], action, list[indx]->data);
X             XtOverrideTranslations(parent, XtParseTranslationTable(trans));
X         }
X     }
X-    }
X  } /* AddMenuWindow */
X  
X  
X--- 178,193 ----
X  	if (L_Trans[indx]) {
X  	   sprintf(trans, L_Trans[indx], action, list[indx]->data);
X             XtOverrideTranslations(parent, XtParseTranslationTable(trans));
X+           }
X         }
X+ /*
X+ ** Dummy out any remaining combinations of accelerators to do nothing
X+ */
X+     for (; L_Trans[indx] != NULL; indx++) {
X+ 	sprintf(trans, L_Trans[indx], "DoNothing", "");
X+         XtOverrideTranslations(parent, XtParseTranslationTable(trans));
X+        }
X     }
X  } /* AddMenuWindow */
X  
X  
X***************
X*** 208,216 ****
X  menuList_p	*list;			/* aux. menu buttons list w/ cbacks */
X  String		help_text;		/* pointer to button specific info */
X  {
X!  Arg		args[MAXARGS];
X   Widget		button;
X-  Cardinal	n;
X   char		trans[BUFSIZ];
X  /*
X  ** Insert name of XtActionProc (and parameter(s)) in the translation list
X--- 204,211 ----
X  menuList_p	*list;			/* aux. menu buttons list w/ cbacks */
X  String		help_text;		/* pointer to button specific info */
X  {
X!  Arg		args[6];
X   Widget		button;
X   char		trans[BUFSIZ];
X  /*
X  ** Insert name of XtActionProc (and parameter(s)) in the translation list
X***************
X*** 217,230 ****
X  */
X   (void) sprintf(trans, "\
X  	<Btn1Down>: highlight() %s(%s) unhighlight()", action, command);
X-  n = 0;
X-  XtSetArg(args[n], XtNwidth, XMail.buttonWidth);			n++;
X-  XtSetArg(args[n], XtNheight, XMail.buttonHeight);			n++;
X-  XtSetArg(args[n], XtNresize, False);					n++;
X-  XtSetArg(args[n], XtNfont, TextFontStr);				n++;
X-  XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(trans));	n++;
X-  button = XtCreateManagedWidget(name, commandWidgetClass, parent, args, n);
X  
X   if (help_text)
X      AddHelpText(button, name, help_text);
X  
X--- 212,225 ----
X  */
X   (void) sprintf(trans, "\
X  	<Btn1Down>: highlight() %s(%s) unhighlight()", action, command);
X  
X+  XtSetArg(args[0], XtNwidth, XMail.buttonWidth);
X+  XtSetArg(args[1], XtNheight, XMail.buttonHeight);
X+  XtSetArg(args[2], XtNresize, False);
X+  XtSetArg(args[3], XtNfont, TextFontStr);
X+  XtSetArg(args[4], XtNtranslations, XtParseTranslationTable(trans));
X+  button = XtCreateManagedWidget(name, commandWidgetClass, parent, args, 5);
X+ 
X   if (help_text)
X      AddHelpText(button, name, help_text);
X  
X***************
X*** 233,239 ****
X--- 228,250 ----
X  } /* AddButton */
X  
X  
X+ /* 
X+ ** @(#)AddSetMenu() - add hook to create menu for toggling mail options
X+ */
X  void
X+ AddSetMenu(w)
X+ Widget		w;
X+ {
X+  Widget		parent = XtNameToWidget(w, "preserve");
X+  static String p_Trans = "#override \
X+     <Btn3Down>: SetCursor(True) SetMenu() MenuPopup(set_menu) SetCursor()";
X+ 
X+  XtOverrideTranslations(parent, XtParseTranslationTable(p_Trans));
X+ } /* AddSetMenu */
X+ 
X+ 
X+ 
X+ void
X  CreateButtons(parent)
X  Widget parent;
X  {
X***************
X*** 253,260 ****
X   b1.label = "save";	b1.func = (XtCallbackProc) Save;	b1.data = "s";
X   b2.label = "Save to author"; b2.func = (XtCallbackProc) Save;	b2.data = "S";
X   b3.label = "write";	b3.func = (XtCallbackProc) Save;	b3.data = "w";
X!  b4.label = "Write to author"; b4.func = (XtCallbackProc) Save;	b4.data = "W";
X!  list[0] = &b1; list[1] = &b2; list[2] = &b3; list[3] = &b4; list[4] = NULL;
X   AddButton(parent, "save", "DoSave", "s", list, Save_Help_Text);
X  
X   CreateFolderButton(parent);
X--- 264,270 ----
X   b1.label = "save";	b1.func = (XtCallbackProc) Save;	b1.data = "s";
X   b2.label = "Save to author"; b2.func = (XtCallbackProc) Save;	b2.data = "S";
X   b3.label = "write";	b3.func = (XtCallbackProc) Save;	b3.data = "w";
X!  list[0] = &b1; list[1] = &b2; list[2] = &b3; list[3] = NULL;
X   AddButton(parent, "save", "DoSave", "s", list, Save_Help_Text);
X  
X   CreateFolderButton(parent);
X***************
X*** 264,275 ****
X   list[0] = &b1; list[1] = &b2; list[2] = NULL;
X   AddButton(parent, "copy", "DoSave", "c", list, Copy_Help_Text);
X  
X!  b1.label = "hold"; b1.func = (XtCallbackProc) DoWith; b1.data = "hold";
X!  list[0] = &b1; list[1] = NULL;
X!  AddButton(parent, "hold", "DoSelected", "hold", list, Hold_Help_Text);
X  
X   b1.label = "delete";	b1.func = (XtCallbackProc) DoWith;	b1.data = "d";
X!  b2.label = "undelete";	b2.func = (XtCallbackProc) DoIt;	b2.data = "u";
X   list[0] = &b1; list[1] = &b2; list[2] = NULL;
X   AddButton(parent, "delete", "DoSelected", "d", list, Delete_Help_Text);
X  
X--- 274,283 ----
X   list[0] = &b1; list[1] = &b2; list[2] = NULL;
X   AddButton(parent, "copy", "DoSave", "c", list, Copy_Help_Text);
X  
X!  AddButton(parent, "preserve", "DoSelected", "preserve", NULL, Hold_Help_Text);
X  
X   b1.label = "delete";	b1.func = (XtCallbackProc) DoWith;	b1.data = "d";
X!  b2.label = "undelete";	b2.func = (XtCallbackProc) DoWith;	b2.data = "u";
X   list[0] = &b1; list[1] = &b2; list[2] = NULL;
X   AddButton(parent, "delete", "DoSelected", "d", list, Delete_Help_Text);
X  
X***************
X*** 308,313 ****
X--- 316,323 ----
X  
X   CreateFileWindow(parent);
X  
X+  AddSetMenu(parent);		/* add a menu for toggling mail options */
X+ 
X  } /* CreateButtons */
X  
X  
X***************
X*** 318,325 ****
X  CreateCommandPanel(parent)
X  Widget parent;
X  {
X!  Arg args[10];
X!  Cardinal n;
X   Widget		cw;
X  
X   static String w_Trans = "\
X--- 328,335 ----
X  CreateCommandPanel(parent)
X  Widget parent;
X  {
X!  Arg		args[8];
X!  Cardinal	n;
X   Widget		cw;
X  
X   static String w_Trans = "\
X***************
X*** 327,343 ****
X  	<Btn2Down>:	DoNothing()\n\
X  	<Btn3Down>:	DoNothing()";
X  
X!  n = 0;
X!  XtSetArg(args[n], XtNhSpace, XMail.commandHSpace);			n++;
X!  XtSetArg(args[n], XtNvSpace, XMail.commandVSpace);			n++;
X!  XtSetArg(args[n], XtNallowResize, (XtArgVal) False);			n++;
X!  XtSetArg(args[n], XtNmax, XMail.commandMinHeight);			n++;
X!  XtSetArg(args[n], XtNmin, XMail.commandMinHeight);			n++;
X!  XtSetArg(args[n], XtNfont, TextFontStr);				n++;
X!  XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(w_Trans));	n++;
X! #ifndef X11R3
X   XtSetArg(args[n], XtNshowGrip, (XtArgVal) False);			n++;
X  #endif
X   cw = XtCreateManagedWidget("commandPanel", boxWidgetClass, parent, args, n);
X   CreateButtons(cw);
X  } /* CreateCommandPanel */
X--- 337,355 ----
X  	<Btn2Down>:	DoNothing()\n\
X  	<Btn3Down>:	DoNothing()";
X  
X!  XtSetArg(args[0], XtNhSpace, XMail.commandHSpace);
X!  XtSetArg(args[1], XtNvSpace, XMail.commandVSpace);
X!  XtSetArg(args[2], XtNallowResize, (XtArgVal) False);
X!  XtSetArg(args[3], XtNmax, XMail.commandMinHeight);
X!  XtSetArg(args[4], XtNmin, XMail.commandMinHeight);
X!  XtSetArg(args[5], XtNfont, TextFontStr);
X!  XtSetArg(args[6], XtNtranslations, XtParseTranslationTable(w_Trans));
X!  n = 7;
X! 
X! #if XtSpecificationRelease >= 4
X   XtSetArg(args[n], XtNshowGrip, (XtArgVal) False);			n++;
X  #endif
X+ 
X   cw = XtCreateManagedWidget("commandPanel", boxWidgetClass, parent, args, n);
X   CreateButtons(cw);
X  } /* CreateCommandPanel */
X***************
X*** 352,383 ****
X  CreateFileWindow(parent)
X  Widget parent;
X  {
X!  Arg		args[MAXARGS];
X   Cardinal 	n;
X   Widget		w;
X  
X!  static String trans = "#override \
X!   Ctrl<Key>W: DeleteWord() beginning-of-line() end-of-line()\n\
X!   Ctrl<Key>U: DeleteLine()\n\
X!   Ctrl<Key>H: InsertSpace() delete-previous-character() beginning-of-line() end-of-line()\n\
X!   <Key>Delete: InsertSpace() delete-previous-character() beginning-of-line() end-of-line()\n\
X!   <Key>BackSpace: InsertSpace() delete-previous-character() beginning-of-line() end-of-line()\n\
X!   <Key>Return: DoNothing()";
X  
X!  n = 0;
X!  XtSetArg(args[n], XtNwidth, XMail.fileBoxWidth);			n++;
X!  XtSetArg(args[n], XtNfont, TextFontStr);				n++;
X!  XtSetArg(args[n], XtNborderWidth, 0);					n++;
X!  XtSetArg(args[n], XtNstring, (XtArgVal) FileBuf);			n++;
X!  XtSetArg(args[n], XtNlength, (XtArgVal) BUFSIZ);			n++;
X!  XtSetArg(args[n], XtNeditType, (XtArgVal) XttextEdit);			n++;
X!  XtSetArg(args[n], XtNtextOptions, wordBreak);				n++;
X!  XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(trans));	n++;
X! #ifndef X11R3
X   XtSetArg(args[n], XtNautoFill, True);					n++;
X  #endif
X  
X   w = XtCreateManagedWidget("fileWindow",asciiStringWidgetClass,parent,args,n);
X   writeText(w, "File: ", 0);
X  
X   AddHelpText(w, "file", File_Help_Text);
X--- 364,411 ----
X  CreateFileWindow(parent)
X  Widget parent;
X  {
X!  Arg		args[10];
X   Cardinal 	n;
X   Widget		w;
X  
X!  static String trans = " \
X!   Ctrl<Key>A:		beginning-of-file()\n\
X!   Ctrl<Key>B:		backward-character()\n\
X!   Ctrl<Key>D:		CheckInsert() delete-next-character()\n\
X!   Ctrl<Key>E:		end-of-file()\n\
X!   Ctrl<Key>F:		forward-character()\n\
X!   Ctrl<Key>H:		DeleteChar()\n\
X!   Ctrl<Key>J:		DoNothing()\n\
X!   Ctrl<Key>M:		DoNothing()\n\
X!   Ctrl<Key>U:		DeleteLine()\n\
X!   Ctrl<Key>W:		DeleteWord()\n\
X!   Meta<Key>F:		forward-word()\n\
X!   Meta<Key>B:		backward-word()\n\
X!   Meta<Key>d:		CheckInsert() delete-next-word()\n\
X!   <Key>Right:		forward-character()\n\
X!   <Key>Left:		backward-character()\n\
X!   <Key>Delete:		DeleteChar()\n\
X!   <Key>BackSpace:	DeleteChar()\n\
X!   <Key>Linefeed:	DoNothing()\n\
X!   <Key>Return:		DoNothing()\n\
X!   <Key>:		CheckInsert() insert-char()";
X  
X!  XtSetArg(args[0], XtNwidth, XMail.fileBoxWidth);
X!  XtSetArg(args[1], XtNfont, TextFontStr);
X!  XtSetArg(args[2], XtNborderWidth, 0);
X!  XtSetArg(args[3], XtNstring, (XtArgVal) FileBuf);
X!  XtSetArg(args[4], XtNlength, (XtArgVal) BUFSIZ);
X!  XtSetArg(args[5], XtNeditType, (XtArgVal) XttextEdit);
X!  XtSetArg(args[6], XtNtextOptions, wordBreak);
X!  XtSetArg(args[7], XtNtranslations, XtParseTranslationTable(trans));
X!  n = 8;
X! 
X! #if XtSpecificationRelease >= 4
X   XtSetArg(args[n], XtNautoFill, True);					n++;
X  #endif
X  
X   w = XtCreateManagedWidget("fileWindow",asciiStringWidgetClass,parent,args,n);
X+ 
X   writeText(w, "File: ", 0);
X  
X   AddHelpText(w, "file", File_Help_Text);
X***************
X*** 391,415 ****
X  CreateFolderButton(parent)
X  Widget	parent;
X  {
X!  Arg		args[MAXARGS];
X   Widget		button;		/* button which pops up a menu when pressed */
X-  Cardinal	n;
X  
X   static String b_Trans = "\
X      <Btn1Down>: highlight() Folder() unhighlight() \n\
X      <Btn3Down>: SetCursor(True) SetFolders() MenuPopup(popupList) SetCursor()";
X- 
X- 
X  /*
X  ** create the command button and add popup menu translations and callback
X  */
X!  n = 0;
X!  XtSetArg(args[n], XtNwidth, XMail.buttonWidth);			n++;
X!  XtSetArg(args[n], XtNheight, XMail.buttonHeight);			n++;
X!  XtSetArg(args[n], XtNresize, False);					n++;
X!  XtSetArg(args[n], XtNfont, TextFontStr);				n++;
X!  XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(b_Trans));	n++;
X!  button = XtCreateManagedWidget("Folder", commandWidgetClass, parent, args, n);
X  
X   AddHelpText(button, "folder", Folder_Help_Text);
X  } /* CreateFolderButton */
X--- 419,439 ----
X  CreateFolderButton(parent)
X  Widget	parent;
X  {
X!  Arg		args[6];
X   Widget		button;		/* button which pops up a menu when pressed */
X  
X   static String b_Trans = "\
X      <Btn1Down>: highlight() Folder() unhighlight() \n\
X      <Btn3Down>: SetCursor(True) SetFolders() MenuPopup(popupList) SetCursor()";
X  /*
X  ** create the command button and add popup menu translations and callback
X  */
X!  XtSetArg(args[0], XtNwidth, XMail.buttonWidth);
X!  XtSetArg(args[1], XtNheight, XMail.buttonHeight);
X!  XtSetArg(args[2], XtNresize, False);
X!  XtSetArg(args[3], XtNfont, TextFontStr);
X!  XtSetArg(args[4], XtNtranslations, XtParseTranslationTable(b_Trans));
X!  button = XtCreateManagedWidget("Folder", commandWidgetClass, parent, args, 5);
X  
X   AddHelpText(button, "folder", Folder_Help_Text);
X  } /* CreateFolderButton */
X***************
X*** 422,443 ****
X  CreateHelpWindow(parent)
X  Widget parent;
X  {
X!  Arg		args[MAXARGS];
X!  Cardinal 	n;
X!  Widget		w;
X  
X  
X!  n = 0;
X!  XtSetArg(args[n], XtNborderWidth, 3);					n++;
X!  w = XtCreatePopupShell("help", overrideShellWidgetClass, parent, args, n);
X  
X!  n = 0;
X!  XtSetArg(args[n], XtNwidth, XMail.helpWidth);				n++;
X!  XtSetArg(args[n], XtNheight, XMail.helpHeight);			n++;
X!  XtSetArg(args[n], XtNfont, HelpFontStr);				n++;
X!  XtSetArg(args[n], XtNeditType, (XtArgVal) XttextRead);			n++;
X!  XtSetArg(args[n], XtNtextOptions, wordBreak);				n++;
X!  XtCreateManagedWidget("helpWindow", asciiStringWidgetClass, w, args, n);
X  } /* CreateHelpWindow */
X  
X  
X--- 446,464 ----
X  CreateHelpWindow(parent)
X  Widget parent;
X  {
X!  Arg	args[6];
X!  Widget	w;
X  
X  
X!  XtSetArg(args[0], XtNborderWidth, 3);
X!  w = XtCreatePopupShell("help", overrideShellWidgetClass, parent, args, 1);
X  
X!  XtSetArg(args[0], XtNwidth, XMail.helpWidth);
X!  XtSetArg(args[1], XtNheight, XMail.helpHeight);
X!  XtSetArg(args[2], XtNfont, HelpFontStr);
X!  XtSetArg(args[3], XtNeditType, (XtArgVal) XttextRead);
X!  XtSetArg(args[4], XtNtextOptions, wordBreak);
X!  XtCreateManagedWidget("helpWindow", asciiStringWidgetClass, w, args, 5);
X  } /* CreateHelpWindow */
X  
X  
X***************
X*** 448,456 ****
X  CreateIndexWindow(parent)
X  Widget parent;
X  {
X!  Arg 	args[MAXARGS];
X!  Cardinal 	n;
X!  Widget		w;
X  
X   static String translations =
X  	"<Key>:		DoNothing() \n\
X--- 469,476 ----
X  CreateIndexWindow(parent)
X  Widget parent;
X  {
X!  Arg	args[8];
X!  Widget	w;
X  
X   static String translations =
X  	"<Key>:		DoNothing() \n\
X***************
X*** 458,474 ****
X  	<Btn3Down>:	select-start() SetSelect() \n\
X  	<Btn3Up>:	DoSelected(p)";
X  
X!  n = 0;
X!  XtSetArg(args[n], XtNheight, XMail.indexHeight);			n++;
X!  XtSetArg(args[n], XtNfont, TextFontStr);				n++;
X!  XtSetArg(args[n], XtNstring, (XtArgVal) IndexBuf);			n++;
X!  XtSetArg(args[n], XtNlength, (XtArgVal) INDEXSIZE);			n++;
X!  XtSetArg(args[n], XtNeditType, (XtArgVal) XttextEdit);			n++;
X!  XtSetArg(args[n], XtNtextOptions, scrollVertical | wordBreak);		n++;
X!  XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(translations));
X! 									n++;
X!  w = XtCreateManagedWidget("indexWindow",asciiStringWidgetClass,parent,args,n);
X  
X   AddHelpText(w, "index", Index_Help_Text);
X  } /* CreateIndexWindow */
X  
X--- 478,493 ----
X  	<Btn3Down>:	select-start() SetSelect() \n\
X  	<Btn3Up>:	DoSelected(p)";
X  
X!  XtSetArg(args[0], XtNheight, XMail.indexHeight);
X!  XtSetArg(args[1], XtNfont, TextFontStr);
X!  XtSetArg(args[2], XtNstring, (XtArgVal) IndexBuf);
X!  XtSetArg(args[3], XtNlength, (XtArgVal) INDEXSIZE);
X!  XtSetArg(args[4], XtNeditType, (XtArgVal) XttextEdit);
X!  XtSetArg(args[5], XtNtextOptions, scrollVertical | wordBreak);
X!  XtSetArg(args[6], XtNtranslations, XtParseTranslationTable(translations));
X  
X+  w = XtCreateManagedWidget("indexWindow",asciiStringWidgetClass,parent,args,7);
X+ 
X   AddHelpText(w, "index", Index_Help_Text);
X  } /* CreateIndexWindow */
X  
X***************
X*** 480,486 ****
X  CreateStatusWindow(parent)
X  Widget parent;
X  {
X!  Arg 	args[MAXARGS];
X   Cardinal 	n;
X   Widget		w;
X  
X--- 499,505 ----
X  CreateStatusWindow(parent)
X  Widget parent;
X  {
X!  Arg		args[10];
X   Cardinal 	n;
X   Widget		w;
X  
X***************
X*** 488,506 ****
X  	<Btn1Down>:	DoNothing()\n\
X  	<Btn3Down>:	DoNothing()";
X  
X!  n = 0;
X!  XtSetArg(args[n], XtNwidth, (XtArgVal) XMail.shellWidth);		n++;
X!  XtSetArg(args[n], XtNallowResize, (XtArgVal) False);			n++;
X!  XtSetArg(args[n], XtNmax, (XtArgVal) XMail.buttonHeight);	 	n++;
X!  XtSetArg(args[n], XtNmin, (XtArgVal) XMail.buttonHeight);	 	n++;
X!  XtSetArg(args[n], XtNfont, TextFontStr);				n++;
X!  XtSetArg(args[n], XtNjustify, (XtArgVal) XtJustifyCenter);		n++;
X!  XtSetArg(args[n], XtNlabel, (XtArgVal) "Establishing connections");	n++;
X!  XtSetArg(args[n], XtNresize, (XtArgVal) False);			n++;
X!  XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(w_Trans));	n++;
X! #ifndef X11R3
X   XtSetArg(args[n], XtNshowGrip, (XtArgVal) False);			n++;
X  #endif
X   w = XtCreateManagedWidget("statusWindow", labelWidgetClass, parent, args, n);
X  
X   AddHelpText(w, "status", Status_Help_Text);
X--- 507,527 ----
X  	<Btn1Down>:	DoNothing()\n\
X  	<Btn3Down>:	DoNothing()";
X  
X!  XtSetArg(args[0], XtNwidth,		(XtArgVal) XMail.shellWidth);
X!  XtSetArg(args[1], XtNallowResize,	(XtArgVal) False);
X!  XtSetArg(args[2], XtNmax,		(XtArgVal) XMail.buttonHeight);
X!  XtSetArg(args[3], XtNmin,		(XtArgVal) XMail.buttonHeight);
X!  XtSetArg(args[4], XtNfont,		TextFontStr);
X!  XtSetArg(args[5], XtNjustify,		(XtArgVal) XtJustifyCenter);
X!  XtSetArg(args[6], XtNlabel,		(XtArgVal) "Establishing connections");
X!  XtSetArg(args[7], XtNresize,		(XtArgVal) False);
X!  XtSetArg(args[8], XtNtranslations, XtParseTranslationTable(w_Trans));
X!  n = 9;
X! 
X! #if XtSpecificationRelease >= 4
X   XtSetArg(args[n], XtNshowGrip, (XtArgVal) False);			n++;
X  #endif
X+ 
X   w = XtCreateManagedWidget("statusWindow", labelWidgetClass, parent, args, n);
X  
X   AddHelpText(w, "status", Status_Help_Text);
X***************
X*** 514,534 ****
X  CreateSubWindows(parent)
X  Widget parent;
X  {
X!  Arg		args[MAXARGS];
X!  Cardinal 	k, n;
X!  Widget		icon, mb, vpane;
X  /*
X  ** Special added actions
X  */
X  static XtActionsRec actionTable[] = {
X! 	{"DeleteWord",		(XtActionProc) DeleteWord},
X  	{"DeleteLine",		(XtActionProc) DeleteLine},
X  	{"Iconify",		(XtActionProc) Iconify},
X- 	{"InsertSpace",		(XtActionProc) InsertSpace},
X  	{"Folder",		(XtActionProc) Folder},
X  	{"SetPopup",		(XtActionProc) SetPopup},
X  	{"SetFolders",		(XtActionProc) SetFolders},
X  	{"SetHelp",		(XtActionProc) SetHelp},
X  	{"DoNothing",		(XtActionProc) DoNothing},
X  	{"DoSelected",		(XtActionProc) DoSelected},
X  	{"SetAliases",		(XtActionProc) SetAliases},
X--- 535,557 ----
X  CreateSubWindows(parent)
X  Widget parent;
X  {
X!  Arg		args[4];
X!  Widget		icon, mb, topbox;
X!  int		x, y, width, height;
X  /*
X  ** Special added actions
X  */
X  static XtActionsRec actionTable[] = {
X! 	{"CheckInsert",		(XtActionProc) CheckInsert},
X! 	{"DeleteChar",		(XtActionProc) DeleteChar},
X  	{"DeleteLine",		(XtActionProc) DeleteLine},
X+ 	{"DeleteWord",		(XtActionProc) DeleteWord},
X  	{"Iconify",		(XtActionProc) Iconify},
X  	{"Folder",		(XtActionProc) Folder},
X  	{"SetPopup",		(XtActionProc) SetPopup},
X  	{"SetFolders",		(XtActionProc) SetFolders},
X  	{"SetHelp",		(XtActionProc) SetHelp},
X+ 	{"SetMenu",		(XtActionProc) SetMenu},
X  	{"DoNothing",		(XtActionProc) DoNothing},
X  	{"DoSelected",		(XtActionProc) DoSelected},
X  	{"SetAliases",		(XtActionProc) SetAliases},
X***************
X*** 549,578 ****
X  
X   XtAddActions(actionTable, XtNumber(actionTable));
X  
X!  n = 0;
X!  XtSetArg(args[n], XtNinput, (XtArgVal) True);				n++;
X!  XtSetArg(args[n], XtNwidth, (XtArgVal) XMail.shellWidth);		n++;
X!  XtSetArg(args[n], XtNgripIndent, (XtArgVal) 0);			n++;
X!  XtSetArg(args[n], XtNskipAdjust, (XtArgVal) True);			n++;
X  
X!  vpane = XtCreateManagedWidget("vpane", vPanedWidgetClass, parent, args, n);
X  
X!  CreateHelpWindow(vpane);
X!  CreateTitleBar(vpane);
X!  CreateIndexWindow(vpane);
X!  CreateStatusWindow(vpane);
X!  CreateCommandPanel(vpane);
X!  CreateTextWindow(vpane);
X  /*
X  ** Create an icon window for the mailwatchWidget
X  */
X!  n = 0;
X!  XtSetArg(args[n], XtNwidth, (XtArgVal) mail_width);			n++;
X!  XtSetArg(args[n], XtNheight, (XtArgVal) mail_height);			n++;
X!  icon = XtCreateWidget("icon", applicationShellWidgetClass, toplevel, args, n);
X   mb = XtCreateManagedWidget("mailbox", mailwatchWidgetClass, icon, NULL, 0);
X   XtAddCallback(mb, XtNcallback, SetNewmail, NULL);
X- 
X  } /* CreateSubWindows */ 
X  
X  
X--- 572,604 ----
X  
X   XtAddActions(actionTable, XtNumber(actionTable));
X  
X!  XtSetArg(args[0], XtNinput, (XtArgVal) True);
X!  XtSetArg(args[1], XtNwidth, (XtArgVal) XMail.shellWidth);
X!  XtSetArg(args[2], XtNgripIndent, (XtArgVal) 0);
X!  XtSetArg(args[3], XtNskipAdjust, (XtArgVal) True);
X  
X!  topbox = XtCreateManagedWidget("topBox", vPanedWidgetClass, parent, args, 4);
X  
X!  CreateHelpWindow(topbox);
X!  CreateTitleBar(topbox);
X!  CreateIndexWindow(topbox);
X!  CreateStatusWindow(topbox);
X!  CreateCommandPanel(topbox);
X!  CreateTextWindow(topbox);
X  /*
X  ** Create an icon window for the mailwatchWidget
X  */
X!  x = y = 0;
X!  if (XMail.iconGeometry)
X!     XParseGeometry(XMail.iconGeometry, &x, &y, &width, &height);
X! 
X!  XtSetArg(args[0], XtNwidth, (XtArgVal) mail_width);
X!  XtSetArg(args[1], XtNheight, (XtArgVal) mail_height);
X!  XtSetArg(args[2], XtNx, (XtArgVal) x);
X!  XtSetArg(args[3], XtNy, (XtArgVal) y);
X!  icon = XtCreateWidget("icon", applicationShellWidgetClass, toplevel, args, 4);
X   mb = XtCreateManagedWidget("mailbox", mailwatchWidgetClass, icon, NULL, 0);
X   XtAddCallback(mb, XtNcallback, SetNewmail, NULL);
X  } /* CreateSubWindows */ 
X  
X  
X***************
X*** 583,599 ****
X  CreateTextWindow(parent)
X  Widget parent;
X  {
X!  Arg 		args[MAXARGS];
X!  Cardinal 	n;
X   Widget	tw;
X  
X  
X!  n = 0;
X!  XtSetArg(args[n], XtNmin, XMail.textMinHeight);			n++;
X!  XtSetArg(args[n], XtNheight, XMail.textHeight);			n++;
X!  XtSetArg(args[n], XtNfont, TextFontStr);				n++;
X!  XtSetArg(args[n], XtNtextOptions, scrollVertical | wordBreak);		n++;
X!  tw = XtCreateManagedWidget("textWindow",asciiStringWidgetClass,parent,args,n);
X  
X   AddHelpText(tw, "text", Text_Help_Text);
X  } /* CreateTextWindow */
X--- 609,623 ----
X  CreateTextWindow(parent)
X  Widget parent;
X  {
X!  Arg 	args[4];
X   Widget	tw;
X  
X  
X!  XtSetArg(args[0], XtNmin, XMail.textMinHeight);
X!  XtSetArg(args[1], XtNheight, XMail.textHeight);
X!  XtSetArg(args[2], XtNfont, TextFontStr);
X!  XtSetArg(args[3], XtNtextOptions, scrollVertical | wordBreak);
X!  tw = XtCreateManagedWidget("textWindow",asciiStringWidgetClass,parent,args,4);
X  
X   AddHelpText(tw, "text", Text_Help_Text);
X  } /* CreateTextWindow */
X***************
X*** 607,616 ****
X  CreateTitleBar(parent)
X  Widget parent;
X  {
X!  Arg 	args[MAXARGS];
X   Cardinal 	n;
X   Pixmap		logo;
X   Widget		form, lg, tb;
X  
X   static String w_Trans = "\
X  	<Btn1Down>:	DoNothing()\n\
X--- 631,641 ----
X  CreateTitleBar(parent)
X  Widget parent;
X  {
X!  Arg		args[8];
X   Cardinal 	n;
X   Pixmap		logo;
X   Widget		form, lg, tb;
X+  char		buf[20];
X  
X   static String w_Trans = "\
X  	<Btn1Down>:	DoNothing()\n\
X***************
X*** 622,659 ****
X  	<Btn2Down>:	Iconify()\n\
X  	<Btn3Down>:	Iconify()";
X  
X!  n = 0;
X!  XtSetArg(args[n], XtNdefaultDistance, 1);				n++;
X!  XtSetArg(args[n], XtNallowResize, (XtArgVal) False);			n++;
X!  XtSetArg(args[n], XtNmax, (XtArgVal) XMail.buttonHeight);		n++;
X!  XtSetArg(args[n], XtNmin, (XtArgVal) XMail.buttonHeight);		n++;
X! #ifndef X11R3
X   XtSetArg(args[n], XtNshowGrip, (XtArgVal) False);			n++;
X  #endif
X   form = XtCreateManagedWidget("titleBar", formWidgetClass, parent, args, n);
X  
X   logo = XCreateBitmapFromData(XtDisplay(toplevel), XtScreen(toplevel)->root,
X                          national_bits, national_width, national_height);
X-  n = 0;
X-  XtSetArg(args[n], XtNborderWidth, 0);					n++;
X-  XtSetArg(args[n], XtNinternalWidth, 0);				n++;
X-  XtSetArg(args[n], XtNwidth, national_width);				n++;
X-  XtSetArg(args[n], XtNheight, (XtArgVal) XMail.buttonHeight);		n++;
X-  XtSetArg(args[n], XtNbitmap, (XtArgVal) logo);				n++;
X-  XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(l_Trans));	n++;
X-  lg = XtCreateManagedWidget("logo", commandWidgetClass, form, args, n);
X  
X!  n = 0;
X!  XtSetArg(args[n], XtNborderWidth, 0);					n++;
X!  XtSetArg(args[n], XtNwidth, XMail.shellWidth - national_width - 2); 	n++;
X!  XtSetArg(args[n], XtNheight, (XtArgVal) XMail.buttonHeight);		n++;
X!  XtSetArg(args[n], XtNlabel, (XtArgVal) TITLE);				n++;
X!  XtSetArg(args[n], XtNfont, TextFontStr);				n++;
X!  XtSetArg(args[n], XtNjustify, (XtArgVal) XtJustifyLeft);		n++;
X!  XtSetArg(args[n], XtNfromHoriz, lg);					n++;
X!  XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(w_Trans));	n++;
X!  tb = XtCreateManagedWidget("titleBar", labelWidgetClass, form, args, n);
X  
X   AddHelpText(tb, "title", Title_Help_Text);
X  } /* CreateTitleBar */
X  
X--- 647,686 ----
X  	<Btn2Down>:	Iconify()\n\
X  	<Btn3Down>:	Iconify()";
X  
X!  XtSetArg(args[0], XtNdefaultDistance, 1);
X!  XtSetArg(args[1], XtNallowResize, (XtArgVal) False);
X!  XtSetArg(args[2], XtNmax, (XtArgVal) XMail.buttonHeight);
X!  XtSetArg(args[3], XtNmin, (XtArgVal) XMail.buttonHeight);
X!  n = 4;
X! 
X! #if XtSpecificationRelease >= 4
X   XtSetArg(args[n], XtNshowGrip, (XtArgVal) False);			n++;
X  #endif
X+ 
X   form = XtCreateManagedWidget("titleBar", formWidgetClass, parent, args, n);
X  
X   logo = XCreateBitmapFromData(XtDisplay(toplevel), XtScreen(toplevel)->root,
X                          national_bits, national_width, national_height);
X  
X!  XtSetArg(args[0], XtNborderWidth, 0);
X!  XtSetArg(args[1], XtNheight, (XtArgVal) XMail.buttonHeight);
X  
X+  XtSetArg(args[2], XtNwidth, national_width);
X+  XtSetArg(args[3], XtNinternalWidth, 0);
X+  XtSetArg(args[4], XtNbitmap, (XtArgVal) logo);
X+  XtSetArg(args[5], XtNtranslations, XtParseTranslationTable(l_Trans));
X+  lg = XtCreateManagedWidget("logo", commandWidgetClass, form, args, 6);
X+ 
X+  sprintf(buf, "%s%d", TITLE, PATCHLEVEL);
X+ 
X+  XtSetArg(args[2], XtNwidth, XMail.shellWidth - national_width - 2);
X+  XtSetArg(args[3], XtNlabel, (XtArgVal) buf);
X+  XtSetArg(args[4], XtNfont, TextFontStr);
X+  XtSetArg(args[5], XtNjustify, (XtArgVal) XtJustifyLeft);
X+  XtSetArg(args[6], XtNfromHoriz, lg);
X+  XtSetArg(args[7], XtNtranslations, XtParseTranslationTable(w_Trans));
X+  tb = XtCreateManagedWidget("titleBar", labelWidgetClass, form, args, 8);
X+ 
X   AddHelpText(tb, "title", Title_Help_Text);
X  } /* CreateTitleBar */
X  
X***************
X*** 670,676 ****
X  String		buf;
X  Cardinal	len;
X  {
X!  Arg		args[MAXARGS];
X   Cardinal 	n;
X  
X   static String trans = "#override \
X--- 697,703 ----
X  String		buf;
X  Cardinal	len;
X  {
X!  Arg		args[12];
X   Cardinal 	n;
X  
X   static String trans = "#override \
X***************
X*** 693,719 ****
X    <Key>Return: NextField()";
X  
X   n  = XMail.shellWidth - 106;	/* - (scn + 2*(internal width + def.dist.)) */
X!  n -= TEXTWIDTH * 9;		/* minus the width of the label text */
X   XtSetArg(args[0], XtNwidth, n);
X  
X!  n = 1;
X!  XtSetArg(args[n], XtNinput, True);					n++;
X!  XtSetArg(args[n], XtNheight, TEXTHEIGHT);				n++;
X!  XtSetArg(args[n], XtNvertDistance, (TEXTHEIGHT * 3.0) / 5.0);		n++;
X!  XtSetArg(args[n], XtNfont, TextFontStr);				n++;
X!  XtSetArg(args[n], XtNborderWidth, 0);					n++;
X!  XtSetArg(args[n], XtNstring, buf);					n++;
X!  XtSetArg(args[n], XtNlength, len);					n++;
X!  XtSetArg(args[n], XtNeditType, (XtArgVal) XttextEdit);			n++;
X!  XtSetArg(args[n], XtNtextOptions, wordBreak);				n++;
X  
X!  if (strcmp(name, "To") == 0 || strcmp(name, "Cc") == 0) {
X!     XtSetArg(args[n],XtNtranslations,XtParseTranslationTable(b_trans));	n++;
X     } else {
X!     XtSetArg(args[n],XtNtranslations,XtParseTranslationTable(trans));	n++;
X     }
X  
X! #ifndef X11R3
X   XtSetArg(args[n], XtNautoFill, True);					n++;
X  #endif
X  
X--- 720,745 ----
X    <Key>Return: NextField()";
X  
X   n  = XMail.shellWidth - 106;	/* - (scn + 2*(internal width + def.dist.)) */
X!  n -= TEXTWIDTH * 9 - 6;	/* minus label text width less fudge factor */
X   XtSetArg(args[0], XtNwidth, n);
X  
X!  XtSetArg(args[1], XtNinput, True);
X!  XtSetArg(args[2], XtNheight, XMail.buttonHeight);
X!  XtSetArg(args[3], XtNfont, TextFontStr);
X!  XtSetArg(args[4], XtNborderWidth, 0);
X!  XtSetArg(args[5], XtNstring, buf);
X!  XtSetArg(args[6], XtNlength, len);
X!  XtSetArg(args[7], XtNeditType, (XtArgVal) XttextEdit);
X!  XtSetArg(args[8], XtNtextOptions, wordBreak);
X  
X!  if (strcmp(name, "Subject") == 0) {
X!     XtSetArg(args[9], XtNtranslations, XtParseTranslationTable(trans));
X     } else {
X!     XtSetArg(args[9], XtNtranslations, XtParseTranslationTable(b_trans));
X     }
X+  n = 10;
X  
X! #if XtSpecificationRelease >= 4
X   XtSetArg(args[n], XtNautoFill, True);					n++;
X  #endif
X  
X*** ../v1.0/xmail.c	Sun May 27 21:05:58 1990
X--- xmail.c	Sun May 27 21:11:39 1990
X***************
X*** 47,57 ****
X  
X  #include "global.h"
X  #include "Mailwatch.h"			/* use as icon and watch for newmail */
X! #ifdef X11R3
X! #include <X11/CommandP.h>
X! #else
X  #include <X11/Xaw/CommandP.h>
X  #endif
X  #include "icon.nomail"			/* default icon pixmap source */
X  #include <X11/cursorfont.h>		/* use watch cursor for busy notify */
X  #include <X11/bitmaps/cross_weave>	/* background use in Newmail notify */
X--- 47,59 ----
X  
X  #include "global.h"
X  #include "Mailwatch.h"			/* use as icon and watch for newmail */
X! 
X! #if XtSpecificationRelease >= 4
X  #include <X11/Xaw/CommandP.h>
X+ #else
X+ #include <X11/CommandP.h>
X  #endif
X+ 
X  #include "icon.nomail"			/* default icon pixmap source */
X  #include <X11/cursorfont.h>		/* use watch cursor for busy notify */
X  #include <X11/bitmaps/cross_weave>	/* background use in Newmail notify */
X***************
X*** 59,96 ****
X  #define Offset(field) (XtOffset(XmailResources *, field))
X  
X  static char what[] =
X!  "@(#)xmail.c 1.0 90/03/19 Copyright 1989 National Semiconductor Corp.";
X  
X  static XtResource resrcs[] = {
X      {XtNfont, XtCFont, XtRString, sizeof(char *),
X          Offset(textFont), XtRString, (caddr_t) NULL},
X-     {"bellRing", "BellRing", XtRBoolean, sizeof(Boolean), 
X- 	Offset(bellRing), XtRImmediate, (caddr_t) True},
X      {"helpFont", "HelpFont", XtRString, sizeof(char *),
X          Offset(helpFont), XtRString, (caddr_t) NULL},
X!     {"mailopt_i", "Mailopt_i", XtRBoolean, sizeof(Boolean), 
X! 	Offset(mailopt_i), XtRImmediate, (caddr_t) False},
X      {"mailopt_n", "Mailopt_n", XtRBoolean, sizeof(Boolean), 
X  	Offset(mailopt_n), XtRImmediate, (caddr_t) False},
X      {"mailopt_U", "Mailopt_U", XtRBoolean, sizeof(Boolean), 
X  	Offset(mailopt_U), XtRImmediate, (caddr_t) False},
X-     {"MFileName", "MFileName", XtRString, sizeof(char *), 
X- 	Offset(MFileName), XtRImmediate, (caddr_t) NULL},
X-     {"SubjectStr", "SubjectStr", XtRString, sizeof(char *), 
X- 	Offset(SubjectStr), XtRImmediate, (caddr_t) NULL},
X      {"Show_Last", "Show_Last", XtRBoolean, sizeof(Boolean), 
X  	Offset(Show_Last), XtRImmediate, (caddr_t) True},
X  };
X  
X  static XrmOptionDescRec Opts[] = {
X!     {"-nb",	"*bellRing",	XrmoptionNoArg, (caddr_t) "False"},
X!     {"-helpfont", "*helpFont",	XrmoptionSepArg, (caddr_t) NULL},
X!     {"-i",	"*mailopt_i",	XrmoptionNoArg, (caddr_t) "True"},
X!     {"-n",	"*mailopt_n",	XrmoptionNoArg, (caddr_t) "True"},
X!     {"-U",	"*mailopt_U",	XrmoptionNoArg, (caddr_t) "True"},
X!     {"-f",	"*MFileName",	XrmoptionSepArg, (caddr_t) NULL},
X!     {"-s",	"*SubjectStr",	XrmoptionSepArg, (caddr_t) NULL},
X!     {"-ls",	"*Show_Last",	XrmoptionNoArg, (caddr_t) "False"},
X  };
X  
X  char	*IndexBuf;		/* buffer for index widget	*/
X--- 61,98 ----
X  #define Offset(field) (XtOffset(XmailResources *, field))
X  
X  static char what[] =
X!  "@(#)xmail.c 1.1 90/05/29 Copyright 1989 National Semiconductor Corp.";
X  
X  static XtResource resrcs[] = {
X      {XtNfont, XtCFont, XtRString, sizeof(char *),
X          Offset(textFont), XtRString, (caddr_t) NULL},
X      {"helpFont", "HelpFont", XtRString, sizeof(char *),
X          Offset(helpFont), XtRString, (caddr_t) NULL},
X!     {"iconGeometry", "IconGeometry", XtRString, sizeof(char *),
X!         Offset(iconGeometry), XtRString, (caddr_t) NULL},
X!     {"MFileName", "MFileName", XtRString, sizeof(char *), 
X! 	Offset(MFileName), XtRString, (caddr_t) NULL},
X!     {"iconic", "Iconic", XtRBoolean, sizeof(Boolean), 
X! 	Offset(iconic), XtRImmediate, (caddr_t) False},
X!     {"bellRing", "BellRing", XtRBoolean, sizeof(Boolean), 
X! 	Offset(bellRing), XtRImmediate, (caddr_t) True},
X      {"mailopt_n", "Mailopt_n", XtRBoolean, sizeof(Boolean), 
X  	Offset(mailopt_n), XtRImmediate, (caddr_t) False},
X      {"mailopt_U", "Mailopt_U", XtRBoolean, sizeof(Boolean), 
X  	Offset(mailopt_U), XtRImmediate, (caddr_t) False},
X      {"Show_Last", "Show_Last", XtRBoolean, sizeof(Boolean), 
X  	Offset(Show_Last), XtRImmediate, (caddr_t) True},
X  };
X  
X  static XrmOptionDescRec Opts[] = {
X!     {"-helpfont",	"*helpFont",	XrmoptionSepArg, (caddr_t) NULL},
X!     {"-iconGeometry",	"*iconGeometry", XrmoptionSepArg, (caddr_t) NULL},
X!     {"-iconic",		"*iconic",	XrmoptionNoArg, (caddr_t) "True"},
X!     {"-f",		"*MFileName",	XrmoptionSepArg, (caddr_t) NULL},
X!     {"-nb",		"*bellRing",	XrmoptionNoArg, (caddr_t) "False"},
X!     {"-n",		"*mailopt_n",	XrmoptionNoArg, (caddr_t) "True"},
X!     {"-U",		"*mailopt_U",	XrmoptionNoArg, (caddr_t) "True"},
X!     {"-ls",		"*Show_Last",	XrmoptionNoArg, (caddr_t) "False"},
X  };
X  
X  char	*IndexBuf;		/* buffer for index widget	*/
X***************
X*** 100,108 ****
X  char 	SubjBuf[BUFSIZ];	/* message subject		*/
X  char 	InReply[BUFSIZ];	/* reply reference string	*/
X  char 	CcBuf[BUFSIZ];		/* message Cc list		*/
X  char 	tmpName[BUFSIZ];	/* message temporary filename	*/
X! char 	MailPrompt[20];		/* mail program prompt string	*/
X! char	*HelpNames[23];		/* array of help window names	*/
X  char	**mailargv;		/* array passed to mail child	*/
X  
X  int	mailargc;		/* counter passed to mail child	*/
X--- 102,111 ----
X  char 	SubjBuf[BUFSIZ];	/* message subject		*/
X  char 	InReply[BUFSIZ];	/* reply reference string	*/
X  char 	CcBuf[BUFSIZ];		/* message Cc list		*/
X+ char 	BccBuf[BUFSIZ];		/* message Bcc list		*/
X  char 	tmpName[BUFSIZ];	/* message temporary filename	*/
X! char 	*MailPrompt;		/* mail program prompt string	*/
X! char	*HelpNames[24];		/* array of help window names	*/
X  char	**mailargv;		/* array passed to mail child	*/
X  
X  int	mailargc;		/* counter passed to mail child	*/
X***************
X*** 116,122 ****
X  Widget  toplevel; 		/* top level shell widget */
X  
X  XmailResources 	XMail;		/* application resources of xmail */
X! XtTextSource	HelpStrings[22];
X  XFontStruct	*TextFontStr, *HelpFontStr;
X  
X  
X--- 119,125 ----
X  Widget  toplevel; 		/* top level shell widget */
X  
X  XmailResources 	XMail;		/* application resources of xmail */
X! XtTextSource	HelpStrings[23];
X  XFontStruct	*TextFontStr, *HelpFontStr;
X  
X  
X***************
X*** 133,147 ****
X   char **mailargv;
X   int  i = 0;
X  
X!  mailargv = (char **) XtMalloc (MAXARGS * sizeof(char *));
X   for (i=0; i < *argc; i++)
X  	mailargv[i] = argv[i];
X  
X      mailargv[i++] = "-N";		/* no version or header info at start */
X-     if (XMail->mailopt_i)
X- 	mailargv[i++] = "-i";		/* ignore interrupts */
X      if (XMail->mailopt_n)
X! 	mailargv[i++] = "-n";		/* don't initialize from mailrc files */
X      if (XMail->mailopt_U)
X  	mailargv[i++] = "-U";		/* Change uucp to Internet addresses */
X      if (XMail->MFileName) {
X--- 136,148 ----
X   char **mailargv;
X   int  i = 0;
X  
X!  mailargv = (char **) XtMalloc (6 * sizeof(char *));
X   for (i=0; i < *argc; i++)
X  	mailargv[i] = argv[i];
X  
X      mailargv[i++] = "-N";		/* no version or header info at start */
X      if (XMail->mailopt_n)
X! 	mailargv[i++] = "-n";		/* don't initialize from Mail.rc file */
X      if (XMail->mailopt_U)
X  	mailargv[i++] = "-U";		/* Change uucp to Internet addresses */
X      if (XMail->MFileName) {
X***************
X*** 148,156 ****
X  	mailargv[i++] = "-f";		/* start from mail folder MFileName */
X  	mailargv[i++] = XMail->MFileName;
X        }
X-     if (XMail->SubjectStr) {		/* set subject string to SubjectStr */
X- 	strcpy(SubjBuf, XMail->SubjectStr);
X-       }
X      mailargv[i] = NULL;
X      *argc = i;
X      return mailargv;
X--- 149,154 ----
X***************
X*** 165,197 ****
END_OF_FILE
if test 47115 -ne `wc -c <'Patch.01d'`; then
    echo shar: \"'Patch.01d'\" unpacked with wrong size!
fi
# end of 'Patch.01d'
fi
echo shar: End of archive 4 \(of 5\).
cp /dev/null ark4isdone
MISSING=""
for I in 1 2 3 4 5 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 5 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 at sun.com / argv at ora.com
Opinions expressed reflect those of the author only.



More information about the Comp.sources.x mailing list