/* Copyright 1993 by gregg hanna */
/*
 * Generated by the ICS builderXcessory (BX).
 *
 *
 * Builder Xcessory 1.0.1.
 *
 */

/*
 * REQUIRED MOTIF INCLUDE FILES
 */
#include <stdio.h>
#include <ctype.h>
#include <Xm/Xm.h>
#include <X11/Shell.h>
#include <Xm/Form.h>
#include <Xm/Label.h>
#include <Xm/List.h>
#include <Xm/MessageB.h>
#include <Xm/PushB.h>
#include <Xm/RowColumn.h>
#include <Xm/Separator.h>
#include <Xm/Text.h>
#include <Xm/ToggleB.h>

#include "compat.h"

/*
 * CALLBACK PROCEDURE DECLARATIONS
 */
extern void ActuallyDeleteCard();
extern void AddCard();
extern void CancelCard();
extern void DeleteCard();
extern void DontDeleteCard();
extern void OKCard();
extern void QuitProg();
extern void Selected();
extern void SpinRolo();
extern void ChangeFilter();
extern void ClearFilter();
extern void ReturnHit();
extern void PickChange();
extern void PickDone();
extern void ManageArgAtClick();

Widget ListForRolo;
Widget filterText;

Widget picker;
Widget pickerButton;

Widget CreatePicker(p)
     Widget p;
{
  Widget di, rc, t0, t1, t2, t3, bu, w;
  Arg args[15];
  XmString xstr;
  int n;
  Boolean bool;
  extern int selectFilter;
  extern int RoloSearch[4];

  n = 0;
  XtSetArg(args[n], XmNx, 0); n++;
  XtSetArg(args[n], XmNy, 0); n++;
  picker = di = XmCreateFormDialog(p,"PickDialog",args,n);

  XtVaSetValues(XtParent(di),XmNtitle,"Search Fields",NULL);

  n = 0;
  XtSetArg(args[n],XmNleftAttachment,XmATTACH_FORM); n++;
  XtSetArg(args[n],XmNrightAttachment,XmATTACH_FORM); n++;
  XtSetArg(args[n],XmNbottomAttachment,XmATTACH_FORM); n++;
  XtSetArg(args[n],XmNalignment,XmALIGNMENT_CENTER); n++;
  bu = XmCreatePushButton(di,"Done",args,n);
  XtManageChild(bu);
  XtAddCallback(bu,XmNactivateCallback,PickDone,di);

  n = 0;
  XtSetArg(args[n],XmNtopAttachment,XmATTACH_FORM); n++;
  XtSetArg(args[n],XmNleftAttachment,XmATTACH_FORM); n++;
  XtSetArg(args[n],XmNrightAttachment,XmATTACH_FORM); n++;
  XtSetArg(args[n],XmNbottomWidget,bu); n++;
  XtSetArg(args[n],XmNbottomAttachment,XmATTACH_WIDGET); n++;
  XtSetArg(args[n],XmNradioAlwaysOne,False); n++;
  XtSetArg(args[n],XmNradioBehavior,False); n++;
  XtSetArg(args[n],XmNorientation,XmVERTICAL); n++;
  XtSetArg(args[n],XmNpacking,XmPACK_COLUMN); n++;
  rc = XmCreateRowColumn(di,"PickRadio",args,n);
  /*rc = XmCreateRadioBox(di,"PickRadio",args,n);*/
  XtManageChild(rc);

  w = XtNameToWidget(p,"*nameLabel");
  if ( w == NULL )
    xstr = XmStringCreateSimple("Name");
  else
    XtVaGetValues(w,XmNlabelString,&xstr,NULL);
  n = 0;
  XtSetArg(args[n],XmNlabelString,xstr); n++;
  XtSetArg(args[n],XmNindicatorType,XmN_OF_MANY); n++;
  t0 = XmCreateToggleButton(rc,"tbutton0",args,n);
  XmStringFree(xstr);
  XtManageChild(t0);
  XtAddCallback(t0,XmNvalueChangedCallback,PickChange,(caddr_t)0);

  w = XtNameToWidget(p,"*primaryLabel");
  if ( w == NULL )
    xstr = XmStringCreateSimple("Primary Index");
  else
    XtVaGetValues(w,XmNlabelString,&xstr,NULL);
  n = 0;
  XtSetArg(args[n],XmNlabelString,xstr); n++;
  XtSetArg(args[n],XmNindicatorType,XmN_OF_MANY); n++;
  t1 = XmCreateToggleButton(rc,"tbutton1",args,n);
  XmStringFree(xstr);
  XtManageChild(t1);
  XtAddCallback(t1,XmNvalueChangedCallback,PickChange,(caddr_t)1);

  w = XtNameToWidget(p,"*secondaryLabel");
  if ( w == NULL )
    xstr = XmStringCreateSimple("Secondary Index");
  else
    XtVaGetValues(w,XmNlabelString,&xstr,NULL);
  n = 0;
  XtSetArg(args[n],XmNlabelString,xstr); n++;
  XtSetArg(args[n],XmNindicatorType,XmN_OF_MANY); n++;
  t2 = XmCreateToggleButton(rc,"tbutton2",args,n);
  XmStringFree(xstr);
  XtManageChild(t2);
  XtAddCallback(t2,XmNvalueChangedCallback,PickChange,(caddr_t)2);

  xstr = XmStringCreateSimple("Other Text");
  n = 0;
  XtSetArg(args[n],XmNlabelString,xstr); n++;
  XtSetArg(args[n],XmNindicatorType,XmN_OF_MANY); n++;
  t3 = XmCreateToggleButton(rc,"tbutton3",args,n);
  XmStringFree(xstr);
  XtManageChild(t3);
  XtAddCallback(t3,XmNvalueChangedCallback,PickChange,(caddr_t)3);

  XtAddCallback(pickerButton, XmNactivateCallback, ManageArgAtClick, picker);

  /* Init search flags to whatever the defaults were */
  XtVaGetValues(t0,XmNset,&bool,NULL);
  RoloSearch[0] = (bool?1:0);
  XtVaGetValues(t1,XmNset,&bool,NULL);
  RoloSearch[1] = (bool?1:0);
  XtVaGetValues(t2,XmNset,&bool,NULL);
  RoloSearch[2] = (bool?1:0);
  XtVaGetValues(t3,XmNset,&bool,NULL);
  RoloSearch[3] = (bool?1:0);

  return di;
}

Widget
Createform(parent)
Widget parent;
{
    extern String indexElements;
    Arg    	args[20];
    int    	argcnt;
    Widget 	retval;
    Widget	form;
    Widget	indexList;
    Widget	addressList;
    Widget	rowColumn;
    Widget	addCardButton;
    Widget	quitButton;
    Widget	clearButton;
    Widget	button;
    char        *s, *t, c;
    extern int selectFilter;

    XmRegisterConverters();
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNx, 0); argcnt++;
    XtSetArg(args[argcnt], XmNy, 0); argcnt++;
    form = XtCreateWidget("form",
		xmFormWidgetClass,
		parent,
		args,
		argcnt);

    retval = form;
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNorientation, XmHORIZONTAL); argcnt++;
    XtSetArg(args[argcnt], XmNentryAlignment, XmALIGNMENT_CENTER); argcnt++;
    XtSetArg(args[argcnt], XmNadjustLast, False); argcnt++;
    XtSetArg(args[argcnt], XmNadjustMargin, False); argcnt++;
    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNleftOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNrightOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNtopOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNx, 0); argcnt++;
    XtSetArg(args[argcnt], XmNy, 0); argcnt++;
    rowColumn = XtCreateWidget("rowColumn",
		xmRowColumnWidgetClass,
		form,
		args,
		argcnt);

    XtManageChild(rowColumn);

    argcnt = 0;
    XtSetArg(args[argcnt], XmNspacing, (short)0); argcnt++;
    XtSetArg(args[argcnt], XmNentryBorder, (short)0); argcnt++;
    XtSetArg(args[argcnt], XmNentryAlignment, XmALIGNMENT_CENTER); argcnt++;
    XtSetArg(args[argcnt], XmNisAligned, True); argcnt++;
    XtSetArg(args[argcnt], XmNpacking, XmPACK_TIGHT); argcnt++;
    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNleftOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
    XtSetArg(args[argcnt], XmNtopOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNtopWidget, rowColumn); argcnt++;
    XtSetArg(args[argcnt], XmNx, 2); argcnt++;
    indexList = XtCreateWidget("indexList",
		xmRowColumnWidgetClass,
		form,
		args,
		argcnt);
    XtManageChild(indexList);

    argcnt = 0;
    XtSetArg(args[argcnt], XmNhighlightThickness, 1); argcnt++;
    XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
    XtSetArg(args[argcnt], XmNmarginHeight, 0); argcnt++;
    XtSetArg(args[argcnt], XmNmarginWidth, 0); argcnt++;
    XtSetArg(args[argcnt], XmNmarginTop, 0); argcnt++;
    XtSetArg(args[argcnt], XmNmarginBottom, 0); argcnt++;
    for ( s = indexElements; *s != '\0'; s = t ) {
      while ( isspace(*s) ) s++;
      for ( t = s; ! isspace(*t) && *t != '\0'; t++ );
      c = *t;
      *t = '\0';
      button = XmCreatePushButton(indexList,s,args,argcnt);
      XtAddCallback(button,XmNactivateCallback,SpinRolo,(caddr_t)mystrdup(s));
      XtManageChild(button);
      *t = c;
    }
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNtopWidget, rowColumn); argcnt++;
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
    XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNleftWidget, indexList); argcnt++;
    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++;
    XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNtopOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNbottomOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNleftOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNrightOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNscrollBarDisplayPolicy, XmSTATIC); argcnt++;
    XtSetArg(args[argcnt], XmNselectionPolicy, XmSINGLE_SELECT); argcnt++;
    addressList = XmCreateScrolledList(form,"addressList",
		args,
		argcnt);
    ListForRolo = addressList;

    XtAddCallback(addressList, XmNsingleSelectionCallback, Selected, (caddr_t)0);
    XtManageChild(addressList);

    argcnt = 0;
    XtSetArg(args[argcnt], XmNalignment, XmALIGNMENT_CENTER); argcnt++;
    addCardButton = XtCreateWidget("addCardButton",
		xmPushButtonWidgetClass,
		rowColumn,
		args,
		argcnt);

    XtAddCallback(addCardButton, XmNactivateCallback, AddCard, (caddr_t)0);
    XtManageChild(addCardButton);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNalignment, XmALIGNMENT_CENTER); argcnt++;
    quitButton = XtCreateWidget("quitButton",
		xmPushButtonWidgetClass,
		rowColumn,
		args,
		argcnt);

    XtAddCallback(quitButton, XmNactivateCallback, QuitProg, (caddr_t)0);
    XtManageChild(quitButton);

    argcnt = 0;
    /*XtSetArg(args[argcnt], XmNcolumns, (short)12); argcnt++;*/
    XtSetArg(args[argcnt], XmNrows, (short)1); argcnt++;
    filterText = XtCreateWidget("filterText",
		xmTextWidgetClass,
		rowColumn,
		args,
		argcnt);

    XtAddCallback(filterText, XmNactivateCallback, ChangeFilter, (caddr_t)0);
    XtManageChild(filterText);

    argcnt = 0;
    XtSetArg(args[argcnt], XmNalignment, XmALIGNMENT_CENTER); argcnt++;
    clearButton = XtCreateWidget("clearButton",
		xmPushButtonWidgetClass,
		rowColumn,
		args,
		argcnt);

    XtAddCallback(clearButton, XmNactivateCallback, ClearFilter, (caddr_t)0);
    XtManageChild(clearButton);

    if ( selectFilter ) {
      argcnt = 0;
      XtSetArg(args[argcnt], XmNalignment, XmALIGNMENT_CENTER); argcnt++;
      pickerButton = XtCreateWidget("pickerButton",
				   xmPushButtonWidgetClass,
				   rowColumn,
				   args,
				   argcnt);
      XtManageChild(pickerButton);
    }

    return( retval );
}

Widget nameText, numberText, numberText2, commentText, deleteCardButton;

Widget
CreateFormDialog(parent)
Widget parent;
{
    Arg    	args[512];
    int    	argcnt;
    Widget 	retval;
    Widget	form1;
    Widget	nameLabel;
    Widget	primaryLabel;
    Widget	secondaryLabel;
    Widget	okButton;
    Widget	cancelButton;
    Widget	separator;
    Widget	rowColumn1;
    extern int selectFilter;

    XmRegisterConverters();
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNx, 0); argcnt++;
    XtSetArg(args[argcnt], XmNy, 0); argcnt++;
    form1 = XmCreateFormDialog(parent,"Card View", args, argcnt);
    retval = form1;

    XtVaSetValues(XtParent(form1),XmNtitle,"Card View",NULL);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNseparatorType, 6); argcnt++;
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_NONE); argcnt++;
    XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNtopOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNbottomOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNleftOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNrightOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 10); argcnt++;
    separator = XtCreateWidget("separator",
		xmSeparatorWidgetClass,
		form1,
		args,
		argcnt);

    XtManageChild(separator);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNorientation, XmHORIZONTAL); argcnt++;
    XtSetArg(args[argcnt], XmNentryAlignment, XmALIGNMENT_CENTER); argcnt++;
    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNleftOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNrightOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNbottomOffset, (int)2); argcnt++;
    rowColumn1 = XtCreateWidget("rowColumn1",
		xmRowColumnWidgetClass,
		form1,
		args,
		argcnt);

    XtManageChild(rowColumn1);

    argcnt = 0;
    okButton = XtCreateWidget("okButton",
		xmPushButtonWidgetClass,
		rowColumn1,
		args,
		argcnt);

    XtAddCallback(okButton, XmNactivateCallback, OKCard, (caddr_t)0);
    XtManageChild(okButton);
 
    argcnt = 0;
    deleteCardButton = XtCreateWidget("deleteCardButton",
		xmPushButtonWidgetClass,
		rowColumn1,
		args,
		argcnt);

    XtAddCallback(deleteCardButton, XmNactivateCallback, DeleteCard, (caddr_t)0);
    XtManageChild(deleteCardButton);
 
    argcnt = 0;
    cancelButton = XtCreateWidget("cancelButton",
		xmPushButtonWidgetClass,
		rowColumn1,
		args,
		argcnt);

    XtAddCallback(cancelButton, XmNactivateCallback, CancelCard, (caddr_t)0);
    XtManageChild(cancelButton);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNtopOffset, (int)12); argcnt++;
    XtSetArg(args[argcnt], XmNleftOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 81); argcnt++;
    primaryLabel = XtCreateWidget("primaryLabel",
		xmLabelWidgetClass,
		form1,
		args,
		argcnt);

    XtManageChild(primaryLabel);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNmaxLength, (int)100); argcnt++;
    XtSetArg(args[argcnt], XmNeditMode, XmSINGLE_LINE_EDIT); argcnt++;
    XtSetArg(args[argcnt], XmNcolumns, (short)20); argcnt++;
    XtSetArg(args[argcnt], XmNrows, (short)1); argcnt++;
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNtopOffset, (int)-5); argcnt++;
    XtSetArg(args[argcnt], XmNleftOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
    XtSetArg(args[argcnt], XmNtopWidget, primaryLabel); argcnt++;
    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++;
    XtSetArg(args[argcnt], XmNleftWidget, primaryLabel); argcnt++;
    numberText = XtCreateWidget("numberText",
		xmTextWidgetClass,
		form1,
		args,
		argcnt);

    XtManageChild(numberText);
    XtAddCallback(numberText, XmNactivateCallback, ReturnHit, (caddr_t)0);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
    XtSetArg(args[argcnt], XmNtopWidget, primaryLabel); argcnt++;
    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNtopOffset, (int)12); argcnt++;
    XtSetArg(args[argcnt], XmNleftOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 81); argcnt++;
    secondaryLabel = XtCreateWidget("secondaryLabel",
		xmLabelWidgetClass,
		form1,
		args,
		argcnt);

    XtManageChild(secondaryLabel);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNmaxLength, (int)100); argcnt++;
    XtSetArg(args[argcnt], XmNeditMode, XmSINGLE_LINE_EDIT); argcnt++;
    XtSetArg(args[argcnt], XmNcolumns, (short)20); argcnt++;
    XtSetArg(args[argcnt], XmNrows, (short)1); argcnt++;
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNtopOffset, (int)-5); argcnt++;
    XtSetArg(args[argcnt], XmNleftOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
    XtSetArg(args[argcnt], XmNtopWidget, secondaryLabel); argcnt++;
    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++;
    XtSetArg(args[argcnt], XmNleftWidget, primaryLabel); argcnt++;
    numberText2 = XtCreateWidget("numberText",
		xmTextWidgetClass,
		form1,
		args,
		argcnt);

    XtManageChild(numberText2);
    XtAddCallback(numberText2, XmNactivateCallback, ReturnHit, (caddr_t)0);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNmaxLength, (int)100); argcnt++;
    XtSetArg(args[argcnt], XmNeditMode, XmSINGLE_LINE_EDIT); argcnt++;
    XtSetArg(args[argcnt], XmNcolumns, (short)35); argcnt++;
    XtSetArg(args[argcnt], XmNrows, (short)1); argcnt++;
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNtopOffset, (int)-5); argcnt++;
    XtSetArg(args[argcnt], XmNleftOffset, (int)0); argcnt++;
    nameText = XtCreateWidget("nameText",
		xmTextWidgetClass,
		form1,
		args,
		argcnt);
    XtManageChild(nameText);
    XtAddCallback(nameText, XmNactivateCallback, ReturnHit, (caddr_t)0);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNtopOffset, (int)12); argcnt++;
    XtSetArg(args[argcnt], XmNleftOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNx, 2); argcnt++;
    XtSetArg(args[argcnt], XmNy, 2); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 81); argcnt++;
    nameLabel = XtCreateWidget("nameLabel",
		xmLabelWidgetClass,
		form1,
		args,
		argcnt);
    XtManageChild(nameLabel);

    argcnt = 0;
    XtSetArg(args[argcnt], XmNscrollingPolicy, XmAUTOMATIC); argcnt++;
    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNbottomOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNleftOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNrightOffset, (int)2); argcnt++;
    XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_WIDGET); argcnt++;
    XtSetArg(args[argcnt], XmNbottomWidget, separator); argcnt++;
    XtSetArg(args[argcnt], XmNeditMode, XmMULTI_LINE_EDIT); argcnt++;
    XtSetArg(args[argcnt], XmNtopOffset, (int)12); argcnt++;
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
    XtSetArg(args[argcnt], XmNtopWidget, secondaryLabel); argcnt++;
    commentText = XmCreateScrolledText(form1,"commentText",
		args,
		argcnt);
    XtManageChild(commentText);

    argcnt = 0;
    XtSetArg(args[argcnt], XmNtopOffset, (int)-5); argcnt++;
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
    XtSetArg(args[argcnt], XmNtopWidget, nameLabel); argcnt++;
    XtSetArg(args[argcnt], XmNleftOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++;
    XtSetArg(args[argcnt], XmNleftWidget, nameLabel); argcnt++;
    XtSetValues(nameText, args, argcnt);

    argcnt = 0;
    XtSetArg(args[argcnt], XmNtopOffset, (int)12); argcnt++;
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
    XtSetArg(args[argcnt], XmNtopWidget, nameLabel); argcnt++;
    XtSetArg(args[argcnt], XmNleftOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
    XtSetArg(args[argcnt], XmNleftWidget, nameLabel); argcnt++;
    XtSetValues(primaryLabel, args, argcnt);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNbottomOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_WIDGET); argcnt++;
    XtSetArg(args[argcnt], XmNbottomWidget, rowColumn1); argcnt++;
    XtSetValues(separator, args, argcnt);

    return( retval );
}

Widget
CreateMessageDialog(parent)
Widget parent;
{
    Arg    	args[20];
    int    	argcnt;
    XmString	xmstr[2];
    Widget	messageBox, help;
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNtitle, "Confirmation"); argcnt++;
    XtSetArg(args[argcnt], XmNmessageString, (xmstr[0]=XmStringCreateLtoR(
		"Save changes to this card?",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNmessageAlignment, XmALIGNMENT_CENTER); argcnt++;
    XtSetArg(args[argcnt], XmNx, 0); argcnt++;
    XtSetArg(args[argcnt], XmNy, 0); argcnt++;
    messageBox = XmCreateQuestionDialog(parent,"messageBox",args,argcnt);
    XmStringFree(xmstr[0]);
    XtAddCallback(messageBox, XmNcancelCallback, DontDeleteCard, (caddr_t)0);
    XtAddCallback(messageBox, XmNokCallback, ActuallyDeleteCard, (caddr_t)0);
    help = XmMessageBoxGetChild(messageBox,XmDIALOG_HELP_BUTTON);
    if ( help != NULL ) {
      XtUnmanageChild(help);
    }
    return messageBox;
}
