#include <stdlib.h>
#include <Xm/MessageB.h>
#include <Dt/Dts.h>
#include <Dt/Action.h>

void emailCB(Widget, XtPointer, XtPointer);

main(argc, argv)
        int     argc;
        char    **argv;
{
        Widget  topLevelShell, send, help, cancel;
        Arg     xargs[10];
        int     n;
        XmString title, greet, email;
        char *file = 2 == argc ? argv[1] : "/etc/motd";
        char *description;

topLevelShell = XtInitialize(argv[0], "DtSend",
                NULL, 0, &argc, argv);

/* CDE Initialization */

        DtInitialize(XtDisplay(topLevelShell), topLevelShell,
                argv[0], "DtSend");

        DtDbLoad();

        send = XmCreateMessageDialog(topLevelShell, "send", NULL, 0);
          /*Get CDE<\#146>s "DESCRIPTION" of the file*/
        description = DtDtsFileToAttributeValue(file, "DESCRIPTION");

        title = XmStringCreateSimple("DtSend");
        greet = XmStringCreateLtoR(description);
        email  = XmStringCreateSimple("Email");

        XtVaSetValues(send,
                XmNdialogTitle,	title,
                XmNmessageString,     greet,
                XmNhelpLabelString,   email,
                NULL);

        XmStringFree(title);
        XmStringFree(greet);
        XmStringFree(email);

        cancel = XmMessageBoxGetChild(send, XmDIALOG_CANCEL_BUTTON);
        XtUnmanageChild(cancel);

        XtAddCallback(send, XmNokCallback, exit, NULL);
        XtAddCallback(send, XmNhelpCallback, emailCB, file);

        XtManageChild(send);

        XtMainLoop();
}
void
emailCB(w, client_data, call_data)
        Widget w;
        XtPointer client_data;
        XtPointer call_data;
{
        DtActionInvocationID actionId;
        DtActionArg actionArgs[] = { DtACTION_FILE, (char *)client_data };

        actionId = DtActionInvoke(XtParent(w),
                "Compose",	/* action */
                actionArgs, 1,	/* action arguments & count */
                (char *) NULL,	/* terminal options */
                (char *) NULL,	/* execution host */
                (char *) NULL,	/* context directory */
                True,	/* "use indicator" */
                NULL, NULL);	/* action callback & client data */
}
