#include <Xm/Xm.h>
#include <Xm/RowColumn.h>
#include <Xm/PushB.h>
#include <X11/Shell.h>
#include <stdio.h>
#include "Help.h"

Widget helpshell, help;
Boolean up = False, fileset = True, font = True, section = True;


void QuitActivate(Widget button, caddr_t client_data,
		  XmAnyCallbackStruct *cstruct)

{
  if (up)
    exit(1);
  else  {
    XtPopup(helpshell, XtGrabNone);
    up = True;
  }
}

void ClearActivate(Widget button, caddr_t client_data,
		  XmAnyCallbackStruct *cstruct)

{
  Arg al[2];
  int ac;

  if (fileset)  {
    XtSetArg(al[0], XtNfilename, NULL);
    XtSetValues(help, al, 1);
    fileset = False;
  }
  else {
    XtSetArg(al[0], XtNfilename, "fmax.help");
    XtSetValues(help, al, 1);
    fileset = True;
  }
}

void FontActivate(Widget button, caddr_t client_data,
		  XmAnyCallbackStruct *cstruct)

{
  Arg al[2];
  int ac;

  if (font)  {
    XtSetArg(al[0], XtNfontFamily, "times");
    XtSetValues(help, al, 1);
    font = False;
  }
  else {
    XtSetArg(al[0], XtNfontFamily, "courier");
    XtSetValues(help, al, 1);
    font = True;
  }
}

void SectionActivate(Widget button, caddr_t client_data,
		     XmAnyCallbackStruct *cstruct)

{
  Arg al[2];
  int ac;

  if (section)  {
    AtHelpShowSection((AtHelpWidget) help, "Setup Axes");
    section = False;
  }
  else {
    AtHelpShowSection((AtHelpWidget) help, "Expressions");
    section = True;
  }
}

void Done(Widget help, caddr_t client_data, caddr_t call_data)

{
  XtPopdown(helpshell);
  up = False;
}

void main(int argc, char *argv[])

{
  Widget toplevel, box, quitbutton, clearbutton, fontbutton,
         sectionbutton;

  toplevel = XtInitialize("testhelp", "TestHelp", NULL, 0, &argc, argv);
  box = XtCreateManagedWidget("box", xmRowColumnWidgetClass, toplevel,
			      NULL, 0);
  quitbutton = XtCreateManagedWidget("quitbutton", xmPushButtonWidgetClass,
				     box, NULL, 0);
  XtAddCallback(quitbutton, XmNactivateCallback, QuitActivate, NULL);

  clearbutton = XtCreateManagedWidget("clearbutton", xmPushButtonWidgetClass,
				      box, NULL, 0);
  XtAddCallback(clearbutton, XmNactivateCallback, ClearActivate, NULL);

  fontbutton = XtCreateManagedWidget("fontbutton", xmPushButtonWidgetClass,
				     box, NULL, 0);
  XtAddCallback(fontbutton, XmNactivateCallback, FontActivate, NULL);

  sectionbutton = XtCreateManagedWidget("sectionbutton", xmPushButtonWidgetClass,
					box, NULL, 0);
  XtAddCallback(sectionbutton, XmNactivateCallback, SectionActivate, NULL);

  helpshell = XtCreatePopupShell("helpshell", transientShellWidgetClass,
				 toplevel, NULL, 0);
  help = XtCreateManagedWidget("help", atHelpWidgetClass, helpshell,
			       NULL, 0);
  XtAddCallback(help, XtNdoneCallback, Done, NULL);

  XtRealizeWidget(toplevel);
  XtMainLoop();
}
