/*
 * Generated by the ICS builderXcessory (BX).
 *
 *
 * Builder Xcessory 1.0.1.
 *
 */

/*
 * REQUIRED MOTIF INCLUDE FILES
 */
#include <Xm/Xm.h>
#include <X11/Shell.h>
#include <Xm/ArrowB.h>
#include <Xm/ArrowBG.h>
#include <Xm/BulletinB.h>
#include <Xm/CascadeB.h>
#include <Xm/CascadeBG.h>
#include <Xm/Command.h>
#include <Xm/CutPaste.h>
#include <Xm/DialogS.h>
#include <Xm/DrawingA.h>
#include <Xm/DrawnB.h>
#include <Xm/FileSB.h>
#include <Xm/Form.h>
#include <Xm/Frame.h>
#include <Xm/Label.h>
#include <Xm/LabelG.h>
#include <Xm/List.h>
#include <Xm/MainW.h>
#include <Xm/MenuShell.h>
#include <Xm/MessageB.h>
#include <Xm/PanedW.h>
#include <Xm/PushB.h>
#include <Xm/PushBG.h>
#include <Xm/RowColumn.h>
#include <Xm/Scale.h>
#include <Xm/ScrollBar.h>
#include <Xm/ScrolledW.h>
#include <Xm/SelectioB.h>
#include <Xm/SeparatoG.h>
#include <Xm/Separator.h>
#include <Xm/Text.h>
#include <Xm/ToggleB.h>
#include <Xm/ToggleBG.h>

/*
 * USER SUPPLIED INCLUDE FILES
 */

#include <stdio.h>
#include "widgets.h"

/*
 * SOME CONVENIENCE ROUTINES
 */
#ifndef IGNORE_COLOR
static unsigned long
COLOR(w, name)
Widget w;
char *name;
{
XrmValue	fromVal, toVal;
unsigned long *pixel;

    fromVal.size = sizeof(char*);
    fromVal.addr = name;

    XtConvert(w, XmRString, &fromVal, XmRPixel, &toVal);
    pixel = (unsigned long*)toVal.addr;
    if( pixel == NULL )
    {
    	fromVal.addr = XtDefaultBackground;
    	XtConvert(w, XmRString, &fromVal, XmRPixel, &toVal);
    	pixel = (unsigned long*)toVal.addr;
    }
    return(*pixel);
}
#endif
#ifndef IGNORE_FONT
static XmFontList
FONT_LIST(w, name)
Widget	w;
char	*name;
{
XrmValue	fromVal, toVal;
XmFontList	*fontListPtr;

    fromVal.size = sizeof(char*);
    fromVal.addr = name;

    XtConvert(w, XmRString, &fromVal, XmRFontList, &toVal);
    fontListPtr = (XmFontList*)toVal.addr;
    if(fontListPtr == NULL)
    {
    	fromVal.addr = "fixed";
    	XtConvert(w, XmRString, &fromVal, XmRFontList, &toVal);
    	fontListPtr = (XmFontList*)toVal.addr;
    }
    return(*fontListPtr);
}

#endif
#ifndef IGNORE_MENU_POST
static void
MENU_POST(p, m, e)
Widget	p;
Widget	m;
XButtonEvent *e;
{
    Arg	args[2];
    int	argcnt;
    int	button;

    argcnt = 0;
    XtSetArg(args[argcnt], XmNwhichButton, &button);
    argcnt++;
    XtGetValues(m, args, argcnt);
    if( e->button != button) return;
    XmMenuPosition(m, e);
    XtManageChild(m);
}
#endif
#ifndef IGNORE_STRING_TABLE
#include <varargs.h>

static XmString*
STRING_TABLE(va_alist)
va_dcl
{
    va_list	ap;
    int		count;
    XmString	*array;
    int		i;

    va_start(ap);
    count = va_arg(ap, int);
    array = (XmString*)XtMalloc((count + 1) * sizeof(XmString*));
    for(i = 0;  i < count; i++ )
    {
	array[i] = XmStringCreateLtoR(va_arg(ap, char*),
	    XmSTRING_DEFAULT_CHARSET);
    }
    array[count] = (XmString)0;
    va_end(ap);
    return(array);
}

static void
FREE_STRING_TABLE(table)
XmString	*table;
{
    int		i;

    for( i = 0; table[i] != 0 ; i++)
    {
	XmStringFree(table[i]);
    }
    XtFree(table);
}
#endif

/*
 * CALLBACK PROCEDURE DECLARATIONS
 */
extern void EnterQuestionCB();
extern void Exit_Callback();
extern void GetHelpCallback();
extern void QuitCallback();
extern void SendQuestionCB();
extern void ViewBrowserCallback();
extern void DialogCancelCallback();
extern void DialogOKCallback();

extern void HelpItemSelectCallback();
extern void BrowserSelectCallback();

extern void lucyCallback();  /* About Lucy... */

Widget
Createlucyform(parent)
Widget parent;
{
    Arg    	args[512];
    int    	argcnt;
    Widget 	retval;
    XmString	xmstr[32];
    XmString	*xmstrTable[8];
    
    XmRegisterConverters();
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNx, 0); argcnt++;
    XtSetArg(args[argcnt], XmNy, 0); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 450); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 412); argcnt++;
    lucyform = XtCreateWidget("lucyform",
		xmFormWidgetClass,
		parent,
		args,
		argcnt);

    retval = lucyform;


    argcnt = 0;
    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
    XtSetArg(args[argcnt], XmNtopOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNleftOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNrightOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNx, 0); argcnt++;
    XtSetArg(args[argcnt], XmNy, 0); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 450); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 31); argcnt++;
    XtSetArg(args[argcnt], XmNrowColumnType, XmMENU_BAR); argcnt++;
    lucymenuBar = XtCreateWidget("lucymenuBar",
		xmRowColumnWidgetClass,
		lucyform,
		args,
		argcnt);

    XtManageChild(lucymenuBar);
    
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNwidth, 1); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 1); argcnt++;
    menuShell = XtCreatePopupShell("menuShell",
		xmMenuShellWidgetClass,
		lucymenuBar,
		args,
		argcnt);

    XtManageChild(menuShell);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNx, 0); argcnt++;
    XtSetArg(args[argcnt], XmNy, 0); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 90); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 52); argcnt++;
    XtSetArg(args[argcnt], XmNrowColumnType, XmMENU_PULLDOWN); argcnt++;
    filepulldownMenu = XtCreateWidget("filepulldownMenu",
		xmRowColumnWidgetClass,
		menuShell,
		args,
		argcnt);

 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"View Browser",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
    viewbrowserButton = XtCreateWidget("viewbrowserButton",
		xmPushButtonWidgetClass,
		filepulldownMenu,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtAddCallback(viewbrowserButton, XmNactivateCallback, ViewBrowserCallback, (caddr_t)0);
    XtManageChild(viewbrowserButton);
 


/**** About lucy *****/
    
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"About Lucy...",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
    lucyButton = XtCreateWidget("lucyButton",
		xmPushButtonWidgetClass,
		filepulldownMenu,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtAddCallback(lucyButton, XmNactivateCallback, lucyCallback, (caddr_t)0);
    XtManageChild(lucyButton);

    

    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"Quit",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
    quitButton = XtCreateWidget("quitButton",
		xmPushButtonWidgetClass,
		filepulldownMenu,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtAddCallback(quitButton, XmNactivateCallback, QuitCallback, (caddr_t)0);
    XtManageChild(quitButton);
    
    
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"File",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNx, 5); argcnt++;
    XtSetArg(args[argcnt], XmNy, 5); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 40); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 21); argcnt++;
    XtSetArg(args[argcnt], XmNsubMenuId, filepulldownMenu); argcnt++;
    fileButton = XtCreateWidget("fileButton",
		xmCascadeButtonWidgetClass,
		lucymenuBar,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtManageChild(fileButton);


    
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNwidth, 1); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 1); argcnt++;
    menuShell1 = XtCreatePopupShell("menuShell1",
		xmMenuShellWidgetClass,
		lucymenuBar,
		args,
		argcnt);

    XtManageChild(menuShell1);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNresizeWidth, True); argcnt++;
    XtSetArg(args[argcnt], XmNorientation, XmVERTICAL); argcnt++;
    XtSetArg(args[argcnt], XmNx, 0); argcnt++;
    XtSetArg(args[argcnt], XmNy, 0); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 102); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 52); argcnt++;
    XtSetArg(args[argcnt], XmNrowColumnType, XmMENU_PULLDOWN); argcnt++;
    editpulldownMenu = XtCreateWidget("editpulldownMenu",
		xmRowColumnWidgetClass,
		menuShell1,
		args,
		argcnt);

 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"Enter question",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    enterquestionButton = XtCreateWidget("enterquestionButton",
		xmPushButtonWidgetClass,
		editpulldownMenu,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtAddCallback(enterquestionButton, XmNactivateCallback, EnterQuestionCB, (caddr_t)0);
    XtManageChild(enterquestionButton);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"Send question ",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
    sendquestionButton = XtCreateWidget("sendquestionButton",
		xmPushButtonWidgetClass,
		editpulldownMenu,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtAddCallback(sendquestionButton, XmNactivateCallback, SendQuestionCB, (caddr_t)0);
    XtManageChild(sendquestionButton);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"Edit",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNx, 45); argcnt++;
    XtSetArg(args[argcnt], XmNy, 5); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 40); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 21); argcnt++;
    XtSetArg(args[argcnt], XmNsubMenuId, editpulldownMenu); argcnt++;
    editButton = XtCreateWidget("editButton",
		xmCascadeButtonWidgetClass,
		lucymenuBar,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtManageChild(editButton);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNwidth, 1); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 1); argcnt++;
    menuShell2 = XtCreatePopupShell("menuShell2",
		xmMenuShellWidgetClass,
		lucymenuBar,
		args,
		argcnt);

    XtManageChild(menuShell2);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNx, 0); argcnt++;
    XtSetArg(args[argcnt], XmNy, 0); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 66); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 31); argcnt++;
    XtSetArg(args[argcnt], XmNrowColumnType, XmMENU_PULLDOWN); argcnt++;
    helppulldownMenu = XtCreateWidget("helppulldownMenu",
		xmRowColumnWidgetClass,
		menuShell2,
		args,
		argcnt);

 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"Get Help",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    gethelpButton = XtCreateWidget("gethelpButton",
		xmPushButtonWidgetClass,
		helppulldownMenu,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtAddCallback(gethelpButton, XmNactivateCallback, GetHelpCallback, (caddr_t)0);
    XtManageChild(gethelpButton);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"Help",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNx, 85); argcnt++;
    XtSetArg(args[argcnt], XmNy, 5); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 40); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 21); argcnt++;
    XtSetArg(args[argcnt], XmNsubMenuId, helppulldownMenu); argcnt++;
    helpButton = XtCreateWidget("helpButton",
		xmCascadeButtonWidgetClass,
		lucymenuBar,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtManageChild(helpButton);
 

    argcnt = 0;
    XtSetArg(args[argcnt], XmNtopWidget, (Widget) lucymenuBar); argcnt++; /***/
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); 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], XmNx, 2); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 450); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 381); argcnt++;
    lucypanedWindow = XtCreateWidget("lucypanedWindow",
		xmPanedWindowWidgetClass,
		lucyform,
		args,
		argcnt);

    XtManageChild(lucypanedWindow);
    
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNx, 3); argcnt++;
    XtSetArg(args[argcnt], XmNy, 3); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 444); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 148); argcnt++;
    lucytopframe = XtCreateWidget("lucytopframe",
		xmFrameWidgetClass,
		lucypanedWindow,
		args,
		argcnt);

    XtManageChild(lucytopframe);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNscrollingPolicy, XmAPPLICATION_DEFINED); argcnt++;
    XtSetArg(args[argcnt], XmNvisualPolicy, XmVARIABLE); argcnt++;
    XtSetArg(args[argcnt], XmNx, 2); argcnt++;
    XtSetArg(args[argcnt], XmNy, 2); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 440); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 144); argcnt++;
    lucyscrolledWindow = XtCreateWidget("lucyscrolledWindow",
		xmScrolledWindowWidgetClass,
		lucytopframe,
		args,
		argcnt);

    XtManageChild(lucyscrolledWindow);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNscrollBarDisplayPolicy, XmDYNAMIC); argcnt++;
    XtSetArg(args[argcnt], XmNx, 0); argcnt++;
    XtSetArg(args[argcnt], XmNy, 0); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 440); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 144); argcnt++;
    XtSetArg(args[argcnt], XmNselectionPolicy, XmBROWSE_SELECT); argcnt++;
    
    lucylist = XtCreateWidget("lucylist",
		xmListWidgetClass,
		lucyscrolledWindow,
		args,
		argcnt);

    XtAddCallback(lucylist, XmNbrowseSelectionCallback,
		  BrowserSelectCallback, (caddr_t)0);
    
    XtManageChild(lucylist);

 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNx, 3); argcnt++;
    XtSetArg(args[argcnt], XmNy, 159); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 444); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 170); argcnt++;
    lucybottomframe = XtCreateWidget("lucybottomframe",
		xmFrameWidgetClass,
		lucypanedWindow,
		args,
		argcnt);

    XtManageChild(lucybottomframe);

/*****/

    argcnt = 0;
    XtSetArg(args[argcnt], XmNscrollingPolicy, XmAUTOMATIC); argcnt++;
    XtSetArg(args[argcnt], XmNscrollBarDisplayPolicy, XmAS_NEEDED); argcnt++;
    XtSetArg(args[argcnt], XmNx, 2); argcnt++;
    XtSetArg(args[argcnt], XmNy, 2); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 340); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 166); argcnt++;
    XtSetArg(args[argcnt], XmNvisualPolicy, XmCONSTANT); argcnt++;
    lucyscrolledWindow2 = XtCreateWidget("lucyscrolledWindow2",
		xmScrolledWindowWidgetClass,
		lucybottomframe,
		args,
		argcnt);

    XtManageChild(lucyscrolledWindow2);
    
    /******/
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNeditMode, XmMULTI_LINE_EDIT); argcnt++;
    XtSetArg(args[argcnt], XmNcolumns, (short)71); argcnt++;
    XtSetArg(args[argcnt], XmNrows, (short)12); argcnt++;
    XtSetArg(args[argcnt], XmNx, 2); argcnt++;
    XtSetArg(args[argcnt], XmNy, 2); argcnt++;
    XtSetArg(args[argcnt], XmNwordWrap, False); argcnt++;
    lucytext = XtCreateWidget("lucytext",
		xmTextWidgetClass,
		lucyscrolledWindow2,
		args,
		argcnt);

    XtManageChild(lucytext);
    XmTextSetEditable(lucytext, False);    

    return( retval );

}

Widget
Createhelpform(parent)
Widget parent;
{
    Arg    	args[512];
    int    	argcnt;
    Widget 	retval;
    XmString	xmstr[32];
    XmString	*xmstrTable[8];

    XmRegisterConverters();
 

    argcnt = 0;
    XtSetArg(args[argcnt], XmNx, 0); argcnt++;
    XtSetArg(args[argcnt], XmNy, 0); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 371); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 370); argcnt++;
    helpform = XtCreateWidget("helpform",
		xmFormWidgetClass,
		parent,
		args,
		argcnt);

    retval = helpform;

 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNtopAttachment, 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], XmNleftOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNrightOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNx, 0); argcnt++;
    XtSetArg(args[argcnt], XmNy, 0); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 371); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 31); argcnt++;
    XtSetArg(args[argcnt], XmNrowColumnType, XmMENU_BAR); argcnt++;
    helpmenuBar = XtCreateWidget("helpmenuBar",
		xmRowColumnWidgetClass,
		helpform,
		args,
		argcnt);

    XtManageChild(helpmenuBar);
    
    argcnt = 0;
    XtSetArg(args[argcnt], XmNwidth, 1); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 1); argcnt++;
    menuShell3 = XtCreatePopupShell("menuShell3",
		xmMenuShellWidgetClass,
		helpmenuBar,
		args,
		argcnt);

    XtManageChild(menuShell3);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNx, 0); argcnt++;
    XtSetArg(args[argcnt], XmNy, 0); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 72); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 31); argcnt++;
    XtSetArg(args[argcnt], XmNrowColumnType, XmMENU_PULLDOWN); argcnt++;
    exitpulldownMenu = XtCreateWidget("exitpulldownMenu",
		xmRowColumnWidgetClass,
		menuShell3,
		args,
		argcnt);

 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"Exit Help",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
    exitpushButton = XtCreateWidget("exitpushButton",
		xmPushButtonWidgetClass,
		exitpulldownMenu,
		args,
		argcnt);
    XmStringFree( xmstr[0] );
    XtAddCallback(exitpushButton, XmNactivateCallback, Exit_Callback, (caddr_t)0);
    XtManageChild(exitpushButton);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"Exit",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNx, 5); argcnt++;
    XtSetArg(args[argcnt], XmNy, 5); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 40); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 21); argcnt++;
    XtSetArg(args[argcnt], XmNsubMenuId, exitpulldownMenu); argcnt++;
    exithelpButton = XtCreateWidget("exithelpButton",
		xmCascadeButtonWidgetClass,
		helpmenuBar,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtManageChild(exithelpButton);
 

    argcnt = 0;

    XtSetArg(args[argcnt], XmNtopWidget, (Widget) helpmenuBar); argcnt++;
    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); 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], XmNtopOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNleftOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNrightOffset, (int)0); argcnt++;
    XtSetArg(args[argcnt], XmNx, 0); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 371); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 332); argcnt++;
    helppanedWindow = XtCreateWidget("helppanedWindow",
		xmPanedWindowWidgetClass,
		helpform,
		args,
		argcnt);

    XtManageChild(helppanedWindow);
    
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNx, 3); argcnt++;
    XtSetArg(args[argcnt], XmNy, 3); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 344); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 148); argcnt++;
    helptopframe = XtCreateWidget("helptopframe",
		xmFrameWidgetClass,
		helppanedWindow,
		args,
		argcnt);

    XtManageChild(helptopframe);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNscrollingPolicy, XmAPPLICATION_DEFINED); argcnt++;
    XtSetArg(args[argcnt], XmNvisualPolicy, XmVARIABLE); argcnt++;
    XtSetArg(args[argcnt], XmNx, 2); argcnt++;
    XtSetArg(args[argcnt], XmNy, 2); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 340); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 144); argcnt++;
    helpscrolledWindow = XtCreateWidget("helpscrolledWindow",
		xmScrolledWindowWidgetClass,
		helptopframe,
		args,
		argcnt);

    XtManageChild(helpscrolledWindow);


    /* ***** help list stuff ******/
    
    argcnt = 0;
    XtSetArg(args[argcnt], XmNscrollBarDisplayPolicy, XmDYNAMIC); argcnt++;
    XtSetArg(args[argcnt], XmNx, 0); argcnt++;
    XtSetArg(args[argcnt], XmNy, 0); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 340); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 144); argcnt++;

    XtSetArg(args[argcnt], XmNselectionPolicy, XmBROWSE_SELECT); argcnt++;
/*    XtSetArg(args[argcnt], XmNbrowseSelectionCallback,
	     HelpItemSelectCallback); argcnt++;
	     bug is localized to here*/
    
    helplist = XtCreateWidget("helplist",
		xmListWidgetClass,
		helpscrolledWindow,
		args,
		argcnt);

    XtAddCallback(helplist, XmNbrowseSelectionCallback,
		  HelpItemSelectCallback, (caddr_t)0);
    
    XtManageChild(helplist);

    /*************************/
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNx, 3); argcnt++;
    XtSetArg(args[argcnt], XmNy, 159); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 344); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 170); argcnt++;
    helpbottomframe = XtCreateWidget("helpbottomframe",
		xmFrameWidgetClass,
		helppanedWindow,
		args,
		argcnt);

    XtManageChild(helpbottomframe);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNscrollingPolicy, XmAUTOMATIC); argcnt++;
    XtSetArg(args[argcnt], XmNscrollBarDisplayPolicy, XmAS_NEEDED); argcnt++;
    XtSetArg(args[argcnt], XmNx, 2); argcnt++;
    XtSetArg(args[argcnt], XmNy, 2); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 340); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 166); argcnt++;
    helpscrolledWindow2 = XtCreateWidget("helpscrolledWindow2",
		xmScrolledWindowWidgetClass,
		helpbottomframe,
		args,
		argcnt);

    XtManageChild(helpscrolledWindow2);

    argcnt = 0;
    XtSetArg(args[argcnt], XmNeditMode, XmMULTI_LINE_EDIT);
    XtSetArg(args[argcnt], XmNeditable, False);
    
    helptext = XtCreateWidget("helptext",
			      xmTextWidgetClass,
			      helpscrolledWindow2,
			      args,
			      argcnt);


    XtManageChild(helptext);

    return( retval );
}






Widget
CreatedialogbulletinBoard(parent)
Widget parent;  /* parent is Shell000 */
{
    Arg    	args[512];
    int    	argcnt;
    Widget 	retval;
    XmString	xmstr[32];
    XmString	*xmstrTable[8];
    Widget	separator2;
    Widget	separator;
    XmRegisterConverters();


    argcnt = 0;
    XtSetArg(args[argcnt], XmNresizePolicy, XmRESIZE_NONE); argcnt++;
    XtSetArg(args[argcnt], XmNx, 0); argcnt++;
    XtSetArg(args[argcnt], XmNy, 0); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 544); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 382); argcnt++;

    /*
    dialogbulletinBoard = XtCreateWidget("dialogbulletinBoard",
		xmBulletinBoardWidgetClass,
		parent,
		args,
		argcnt);
		*/

    dialogbulletinBoard = XmCreateBulletinBoardDialog(parent, "dialog",
						      args,
						      argcnt);

    retval = dialogbulletinBoard;
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNorientation, XmVERTICAL); argcnt++;
    XtSetArg(args[argcnt], XmNx, 10); argcnt++;
    XtSetArg(args[argcnt], XmNy, 50); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 20); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 270); argcnt++;
    separator = XtCreateWidget("separator",
		xmSeparatorWidgetClass,
		dialogbulletinBoard,
		args,
		argcnt);

    XtManageChild(separator);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNx, 40); argcnt++;
    XtSetArg(args[argcnt], XmNy, 180); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 146); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 20); argcnt++;
    separator2 = XtCreateWidget("separator2",
		xmSeparatorWidgetClass,
		dialogbulletinBoard,
		args,
		argcnt);

    XtManageChild(separator2);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNx, 212); argcnt++;
    XtSetArg(args[argcnt], XmNy, 85); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 312); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 209); argcnt++;
    messageframe = XtCreateWidget("messageframe",
		xmFrameWidgetClass,
		dialogbulletinBoard,
		args,
		argcnt);

    XtManageChild(messageframe);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNradioBehavior, True); argcnt++;
    XtSetArg(args[argcnt], XmNradioAlwaysOne, True); argcnt++;
    XtSetArg(args[argcnt], XmNpacking, XmPACK_COLUMN); argcnt++;
    XtSetArg(args[argcnt], XmNx, 50); argcnt++;
    XtSetArg(args[argcnt], XmNy, 250); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 141); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 43); argcnt++;
    replyradioBox = XtCreateWidget("replyradioBox",
		xmRowColumnWidgetClass,
		dialogbulletinBoard,
		args,
		argcnt);

    XtManageChild(replyradioBox);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNradioBehavior, True); argcnt++;
    XtSetArg(args[argcnt], XmNradioAlwaysOne, True); argcnt++;
    XtSetArg(args[argcnt], XmNpacking, XmPACK_COLUMN); argcnt++;
    XtSetArg(args[argcnt], XmNx, 60); argcnt++;
    XtSetArg(args[argcnt], XmNy, 130); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 105); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 43); argcnt++;
    publishradioBox = XtCreateWidget("publishradioBox",
		xmRowColumnWidgetClass,
		dialogbulletinBoard,
		args,
		argcnt);

    XtManageChild(publishradioBox);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNeditMode, XmSINGLE_LINE_EDIT); argcnt++;
    XtSetArg(args[argcnt], XmNwordWrap, False); argcnt++;
    XtSetArg(args[argcnt], XmNcolumns, (short)43); argcnt++;
    XtSetArg(args[argcnt], XmNrows, (short)1); argcnt++;
    XtSetArg(args[argcnt], XmNscrollVertical, False); argcnt++;
    XtSetArg(args[argcnt], XmNx, 191); argcnt++;
    XtSetArg(args[argcnt], XmNy, 326); argcnt++;
    persReplytext = XtCreateWidget("persReplytext",
		xmTextWidgetClass,
		dialogbulletinBoard,
		args,
		argcnt);

    XtManageChild(persReplytext);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNeditMode, XmSINGLE_LINE_EDIT); argcnt++;
    XtSetArg(args[argcnt], XmNcolumns, (short)43); argcnt++;
    XtSetArg(args[argcnt], XmNrows, (short)1); argcnt++;
    XtSetArg(args[argcnt], XmNx, 191); argcnt++;
    XtSetArg(args[argcnt], XmNy, 34); argcnt++;
    subjecttext = XtCreateWidget("subjecttext",
		xmTextWidgetClass,
		dialogbulletinBoard,
		args,
		argcnt);

    XtManageChild(subjecttext);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"Send Personal Reply to:",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
    XtSetArg(args[argcnt], XmNx, 40); argcnt++;
    XtSetArg(args[argcnt], XmNy, 320); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 146); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 33); argcnt++;
    XtSetArg(args[argcnt], XmNactivateCallback, NULL); argcnt++;
    sendReplytolabel = XtCreateWidget("sendReplytolabel",
		xmPushButtonWidgetClass,
		dialogbulletinBoard,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtManageChild(sendReplytolabel);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"Personal Reply?",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
    XtSetArg(args[argcnt], XmNx, 40); argcnt++;
    XtSetArg(args[argcnt], XmNy, 210); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 146); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 33); argcnt++;
    XtSetArg(args[argcnt], XmNactivateCallback, NULL); argcnt++;    
    personalReplylabel = XtCreateWidget("personalReplylabel",
		xmPushButtonWidgetClass,
		dialogbulletinBoard,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtManageChild(personalReplylabel);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"Publish Question?",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
    XtSetArg(args[argcnt], XmNx, 40); argcnt++;
    XtSetArg(args[argcnt], XmNy, 90); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 146); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 33); argcnt++;
    XtSetArg(args[argcnt], XmNactivateCallback, NULL); argcnt++;    
    publishQuestionlabel = XtCreateWidget("publishQuestionlabel",
		xmPushButtonWidgetClass,
		dialogbulletinBoard,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtManageChild(publishQuestionlabel);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"Subject:",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
    XtSetArg(args[argcnt], XmNx, 40); argcnt++;
    XtSetArg(args[argcnt], XmNy, 30); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 146); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 33); argcnt++;
    XtSetArg(args[argcnt], XmNactivateCallback, NULL); argcnt++;    
    subjectlabel = XtCreateWidget("subjectlabel",
		xmPushButtonWidgetClass,
		dialogbulletinBoard,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtManageChild(subjectlabel);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"Publish",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNx, 3); argcnt++;
    XtSetArg(args[argcnt], XmNy, 3); argcnt++;
    publishYestoggle = XtCreateWidget("publishYestoggle",
		xmToggleButtonWidgetClass,
		publishradioBox,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtManageChild(publishYestoggle);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"Don\'t Publish",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNx, 3); argcnt++;
    XtSetArg(args[argcnt], XmNy, 23); argcnt++;
    publishNotoggle = XtCreateWidget("publishNotoggle",
		xmToggleButtonWidgetClass,
		publishradioBox,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtManageChild(publishNotoggle);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"Want Personal Reply",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNx, 3); argcnt++;
    XtSetArg(args[argcnt], XmNy, 3); argcnt++;
    replyYestoggle = XtCreateWidget("replyYestoggle",
		xmToggleButtonWidgetClass,
		replyradioBox,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtManageChild(replyYestoggle);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
		"No Personal Reply",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNx, 3); argcnt++;
    XtSetArg(args[argcnt], XmNy, 23); argcnt++;
    replyNotoggle = XtCreateWidget("replyNotoggle",
		xmToggleButtonWidgetClass,
		replyradioBox,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtManageChild(replyNotoggle);
 
    argcnt = 0;
    XtSetArg(args[argcnt], XmNresizePolicy, XmRESIZE_NONE); argcnt++;
    XtSetArg(args[argcnt], XmNnoResize, True); argcnt++;
    XtSetArg(args[argcnt], XmNmessageString, (xmstr[0]=XmStringCreateLtoR(
		"When you have answered these questions,\n\
\n\
click the \'OK\' button to send your Question\n\
\n\
to Lucy.  Or, if you change your mind, click\n\
\n\
the \'Cancel\' button to cancel your Question.\n\
\n\
For additional help, click the \'Help\' button.",
		XmSTRING_DEFAULT_CHARSET))); argcnt++;
    XtSetArg(args[argcnt], XmNx, 2); argcnt++;
    XtSetArg(args[argcnt], XmNy, 2); argcnt++;
    XtSetArg(args[argcnt], XmNwidth, 308); argcnt++;
    XtSetArg(args[argcnt], XmNheight, 205); argcnt++;
    messageBox = XtCreateWidget("messageBox",
		xmMessageBoxWidgetClass,
		messageframe,
		args,
		argcnt);
    XmStringFree( xmstr[0] );

    XtAddCallback(messageBox, XmNcancelCallback, DialogCancelCallback, (caddr_t)0);
    XtAddCallback(messageBox, XmNokCallback, DialogOKCallback, (caddr_t)0);
    XtAddCallback(messageBox, XmNhelpCallback, GetHelpCallback, (caddr_t)0);
    XtManageChild(messageBox);


/* removing the following callbacks because we only want to use
   the following pushbutton widgets as glorified labels. */
    
    XtRemoveAllCallbacks(subjectlabel, XmNactivateCallback);
    XtRemoveAllCallbacks(publishQuestionlabel, XmNactivateCallback);    
    XtRemoveAllCallbacks(personalReplylabel, XmNactivateCallback);    
    XtRemoveAllCallbacks(sendReplytolabel, XmNactivateCallback);
    
    return( retval );
}

