/* This file contains empty template routines that
 * the IDCMP handler will call uppon. Fill out these
 * routines with your code or use them as a reference
 * to create your program.
 */

#include "MM2.h"

#include <stdio.h>
#include <stdlib.h>

extern struct MinList *MemListPtr;
extern BOOL memostate;

struct MinNode *NewFirst;

static char *MAdd_Help[]={
  "   Date format is \"dd-mmm-yy\"  ",
  "       eg \"21-JAN-91\"   ",
  "   Notice is number, 1 to 99. The ",
  "       number of days notice you want",
  "   Type is A (or a) for Annual   ",
  "           anything else is up to you   ",
  '\0'
  };
char *err_txt_dateinv1[] = {
  "   Invalid date - try again   ",
  '\0'
  };

int Select1GadClicked( void )
{
  /* routine when gadget "" is clicked. */
  if (!helpmode)
    Toggle(0);
  else
    DisplayT(Help_display);
  return(1);
}

int Select2GadClicked( void )
{
  /* routine when gadget "" is clicked. */
  if (!helpmode)
    Toggle(1);
  else
    DisplayT(Help_display);
  return(1);
}

int Select3GadClicked( void )
{
  /* routine when gadget "" is clicked. */
  if (!helpmode)
    Toggle(2);
  else
    DisplayT(Help_display);
  return(1);
}

int Select4GadClicked( void )
{
  /* routine when gadget "" is clicked. */
  if (!helpmode)
    Toggle(3);
  else
    DisplayT(Help_display);
  return(1);
}

int Select5GadClicked( void )
{
  /* routine when gadget "" is clicked. */
  if (!helpmode)
    Toggle(4);
  else
    DisplayT(Help_display);
  return(1);
}

int Select6GadClicked( void )
{
  /* routine when gadget "" is clicked. */
  if (!helpmode)
    Toggle(5);
  else
    DisplayT(Help_display);
  return(1);
}

int MoveBeginGadClicked( void )
{
  /* routine when gadget "|<" is clicked. */
  if (!helpmode)
  {
    if (LISTEMPTY) {;}
    else
    {
      DisplayFirst = MemListPtr->mlh_Head;
      Display_Block(DisplayFirst);
    }
  }
  else
    DisplayT(Help_beg);
}

int BackBlockGadClicked( void )
{
  /* routine when gadget "<<" is clicked. */
  if (!helpmode)
  {
    if (LISTEMPTY) {;}
    else
    {
      NewFirst = MoveBackBlock(DisplayFirst);
      if (NewFirst != DisplayFirst)
      {
        DisplayFirst = NewFirst;
        Display_Block(DisplayFirst);
      }
    }
  }
  else
    DisplayT(Help_bkb);
}

int BackGadClicked( void )
{
  /* routine when gadget "<" is clicked. */
  if (!helpmode)
  {
    if (LISTEMPTY) {;}
    else
    {
      NewFirst = MoveBackOne(DisplayFirst);
      if (NewFirst != DisplayFirst)
      {
        DisplayFirst = NewFirst;
        Display_Block(DisplayFirst);
      }
    }
  }
  else
    DisplayT(Help_bki);
}

int ForwardGadClicked( void )
{
  /* routine when gadget ">" is clicked. */
  if (!helpmode)
  {
    if (LISTEMPTY) {;}
    else
    {
      NewFirst = MoveFwdOne(DisplayFirst);
      if (NewFirst != DisplayFirst)
      {
        DisplayFirst = NewFirst;
        Display_Block(DisplayFirst);
      }
    }
  }
  else
    DisplayT(Help_fwi);
}

int ForwardBlockGadClicked( void )
{
  /* routine when gadget ">>" is clicked. */
  if (!helpmode)
  {
    if (LISTEMPTY) {;}
    else
    {
      NewFirst = MoveFwdBlock(DisplayFirst);
      if (NewFirst != DisplayFirst)
      {
        DisplayFirst = NewFirst;
        Display_Block(DisplayFirst);
      }
    }
  }
  else
    DisplayT(Help_fwb);
}

int MoveEndGadClicked( void )
{
  /* routine when gadget ">|" is clicked. */
  if (!helpmode)
  {
    if (LISTEMPTY) {;}
    else
    {
      NewFirst = MoveEnd(DisplayFirst);
      if (NewFirst != DisplayFirst)
      {
        DisplayFirst = NewFirst;
        Display_Block(DisplayFirst);
      }
    }
  }
  else
    DisplayT(Help_eol);
}

int AddGadClicked( void )
{
  /* routine when gadget "Add" is clicked. */
  if (!helpmode)
    Add();
  else
    DisplayT(Help_add);
  return(1);
}

int DeleteGadClicked( void )
{
  /* routine when gadget "Delete" is clicked. */
  if (!helpmode)
    Del();
  else
    DisplayT(Help_del);
  return(1);
}

int EditGadClicked( void )
{
  /* routine when gadget "Edit" is clicked. */
  if (!helpmode)
    Edit();
  else
    DisplayT(Help_edi);
  return(1);
}

int CheckGadClicked( void )
{
  /* routine when gadget "Check" is clicked. */
  if (!helpmode)
    MemoChk(TRUE);
  else
    DisplayT(Help_chk);
  return(1);
}

int ShrinkGadClicked( void )
{
  /* routine when gadget "Shrink" is clicked. */
  if (!helpmode)
  {
    Shrink();
  }
  else
    DisplayT(Help_shr);
  return(1);
}

int HelpGadClicked( void )
{
  /* routine when gadget "Help" is clicked. */
  Mode_Help();
  return(1);
}

int OKGadClicked( void )
{
  /* routine when gadget "OK" is clicked. */
  if (CheckMemoDate(GetString(EditGadgets[GDX_DateGad])) != TRUE)
  {
    DisplayE(err_txt_dateinv1);
    ActivateGadget(EditGadgets[GDX_DateGad],EditWnd,NULL);
    return(1);
  }
  else
  {
    memostate = TRUE;
    return(-1);
  }
}

int EditHelpGadClicked( void )
{
  /* routine when gadget "Help" is clicked. */
  DisplayH(MAdd_Help);
  ActivateGadget(EditGadgets[GDX_DateGad],EditWnd,NULL);
}

int CancelGadClicked( void )
{
  /* routine when gadget "Cancel" is clicked. */
  memostate = FALSE;
  return(-1);
}

int DateGadClicked( void )
{
  /* routine when gadget "Date :" is clicked. */
  ActivateGadget(EditGadgets[GDX_NoticeGad],EditWnd,0);
  return(1);
}

int NoticeGadClicked( void )
{
  /* routine when gadget "Notice :" is clicked. */
  ActivateGadget(EditGadgets[GDX_TypeGad],EditWnd,0);
  return(1);
}

int TypeGadClicked( void )
{
  /* routine when gadget "Type :" is clicked. */
  ActivateGadget(EditGadgets[GDX_MemoGad],EditWnd,0);
  return(1);
}

int MemoGadClicked( void )
{
  /* routine when gadget "Memo :" is clicked. */
  ActivateGadget(EditGadgets[GDX_DateGad],EditWnd,0);
  return(1);
}

int MMCloseWindow( void )
{
  /* routine for "IDCMP_CLOSEWINDOW". */
  if (!helpmode)
    return(-1);
  else
    DisplayT(Help_close);
}

int EditCloseWindow( void )
{
  /* routine for "IDCMP_CLOSEWINDOW". */
  memostate = FALSE;
  return(-1);
}
