/*
 *  CALC      Provides a calculator that opens on the active screen when
 *            you press a specific key sequence.  Otherwise, the program
 *            waits quitely in the background.
 *
 *              Copyright 1989 by Davide P. Cervone.
 *  You may use this code, provided this copyright notice is kept intact.
 */

#define PORTNAME    "CalcPort"

#define STARTSIGNAL         SIGBREAKF_CTRL_F
#define ENDSIGNAL           SIGBREAKF_CTRL_E

#define CLOSESIGNAL         SIGBREAKF_CTRL_D


struct HandlerData
{
   struct MsgPort HandlerPort;
   short  MajVers,MinVers,MinLoadVers;
   long   Segment;

   struct IntuitionBase         **IntuitionBase;
   struct GfxBase               **GfxBase;

   struct Interrupt *Handler_Interrupt;
   struct Task **ParentTask;
   
   UWORD *KeyCode;
   UWORD *Qualifiers;

   void             (*aCloseScreen)();
   long             *OldCloseScreen;
};


/*
 *  Macros to make using HandlerData easy
 */

#define VAR(x)      (*(cHandlerData->x))
#define var(x)      (cHandlerData->x)


struct StartupMessage
{
   struct Message sm_Message;
   struct HandlerData *sm_HandlerData;
   struct Task *sm_ParentTask;
   short sm_LoadVers;
};
