#define COPYRIGHT   "Copyright 1989 by Davide P. Cervone, all rights reserved" 

#define PORTNAME        "NL-Daemon-Port"


#define STDBLOCKPEN     1
#define STDDETAILPEN    0

#define BLOCKPEN        2
#define DETAILPEN       3

#define PENCHANGED      0x80



/*
 *  NL_HandlerInfo
 *
 *  The data structure shared between the handler and the loader
 *  the loader sets some of these variables on behalf of the handler,
 *  in order to keep the handler as small as possible.  The handler
 *  passes information that the loader needs (like the pointers to 
 *  the routines for SetFunction) via this structure.
 */

struct NL_HandlerInfo
{
   struct MsgPort NL_Port;                  /* port used to store this info */
   short MajVers,MinVers, MinLoadVers;      /* version of handler and loader */
   long Segment;                            /* SegList loaded by loader */
   struct IntuitionBase **IntuitionBase;
   struct SysBase **SysBase;
   
   /*
    *  These are the routines replaced by SetFunction() and the values
    *  returned by SetFunction, used to replace the original routines
    *  when NL-Daemon exits.
    */
   
   void (*aOpenWindow)();
   void (*aSetMenuStrip)();
   void (*aOpenScreen)();
   long *OldOpenWindow;
   long *OldSetMenuStrip;
   long *OldOpenScreen;
   
   
   /*
    *  These routines are called by the loader to retro-fit existing windows
    *  and screens.
    */
    
   void (*SetupWindow)();
   void (*SetupScreen)();
   
   /*
    *  These are the structures used by NL-Handler
    */
    
   struct Image *CloseImage;
   struct Image *UpFrontImage;
   struct Image *DownBackImage;
   struct Image *SizeImage;
   struct Image *ZoomImage;

   struct Image *LR_CloseImage;
   struct Image *LR_UpFrontImage;
   struct Image *LR_DownBackImage;
   struct Image *LR_SizeImage;
   struct Image *LR_ZoomImage;
   
   int Flags;
      #define   INTUITION_CHANGED   1
};

/*
 *  Macros to make using NL_HandlerInfo easy
 */

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