/***************************************************************************

   Program:    PrLabel
   File:       PrLabel.h
   
   Version:    V1.1
   Date:       28.10.91
   Function:   Main include file
   
   Copyright:  SciTech Software 1991
   Author:     Andrew C. R. Martin
   Address:    SciTech Software
               23, Stag Leys,
               Ashtead,
               Surrey,
               KT21 2TD.
   Phone:      +44 (0372) 275775
   EMail:      UUCP: cbmuk!cbmuka!scitec!amartin
               JANET: andrew@uk.ac.ox.biop
               
****************************************************************************

   This program is not in the public domain, but it may be freely copied
   and distributed for no charge providing this header is included.
   The code may be modified as required, but any modifications must be
   documented so that the person responsible can be identified. If someone
   else breaks this code, I don't want to be blamed for code that does not
   work! The code may not be sold commercially without prior permission from
   the author, although it may be given away free with commercial products,
   providing it is made clear that this program is free and that the source
   code is provided with the program.

****************************************************************************

   Description:
   ============

****************************************************************************

   Usage:
   ======
   PrLabel is a program to print text for laser labels.

****************************************************************************

   Revision History:
   =================
   V1.1     17.01.92
   Placed includes in this file.
   V1.2     14.09.92
   Added GlobSepChar

***************************************************************************/
/* Includes
*/
#include <exec/types.h>
#include <workbench/startup.h>
#include <proto/intuition.h>
#include <proto/icon.h>
#include <sts/stslib.h>
#include <stdio.h>
#include "MyIO.h"
#include "protos.h"

/**************************************************************************/
/* Defines
*/
#define SMALLBUFF 101
#define LARGEBUFF 255
#define MAXGROUPS 40
#define MAXLINK   5

#define GRAPHICS_REV 29
#define INTUITION_REV 29
#define ASL_REV 36

#define LINELENGTH 77
#define PAGELENGTH 63
#define NLABLIN    7

#define THREE_EIGHT 1
#define TWO_EIGHT   2
#define TWO_SEVEN   3

/**************************************************************************/
/* Structure definitions 
*/
typedef struct
{
   int print,
       x,
       y;
} LABEL;

typedef struct addr_entry
{
   char line[7][80];
   struct addr_entry *prev;
   struct addr_entry *next;
} ADDR;


/**************************************************************************/
/* Externals
*/
#ifdef MAIN

struct Window        *Window        = NULL;
struct GfxBase       *GfxBase       = NULL;
struct IntuitionBase *IntuitionBase = NULL;
struct Library       *AslBase       = NULL;
LABEL                label[3][8];
int                  NLabel         = 1;
int                  CurLabel       = 0;
ADDR                 *address       = NULL;
int                  SheetType      = THREE_EIGHT;
int                  mb             = 10;          /* Menu bar height */
struct Gadget        *Line1         = NULL,
                     *Line2         = NULL,
                     *Line3         = NULL,
                     *Line4         = NULL,
                     *Line5         = NULL,
                     *Line6         = NULL,
                     *Line7         = NULL,
                     *pos11         = NULL,
                     *pos12         = NULL,
                     *pos13         = NULL,
                     *pos14         = NULL,
                     *pos15         = NULL,
                     *pos16         = NULL,
                     *pos17         = NULL,
                     *pos18         = NULL,
                     *pos21         = NULL,
                     *pos22         = NULL,
                     *pos23         = NULL,
                     *pos24         = NULL,
                     *pos25         = NULL,
                     *pos26         = NULL,
                     *pos27         = NULL,
                     *pos28         = NULL,
                     *pos31         = NULL,
                     *pos32         = NULL,
                     *pos33         = NULL,
                     *pos34         = NULL,
                     *pos35         = NULL,
                     *pos36         = NULL,
                     *pos37         = NULL,
                     *pos38         = NULL,
                     *Kill          = NULL,
                     *Next          = NULL,
                     *Prev          = NULL,
                     *Print         = NULL;
struct Menu          *Menu1         = NULL;
struct MenuItem      *MenuItem1     = NULL,
                     *MenuItem2     = NULL,
                     *MenuItem3     = NULL,
                     *MenuItem4     = NULL;
char                 Line1SIBuff[80],
                     Line2SIBuff[80],
                     Line3SIBuff[80],
                     Line4SIBuff[80],
                     Line5SIBuff[80],
                     Line6SIBuff[80],
                     Line7SIBuff[80],
                     GlobSepChar;

#else /*--------------------------------------------------------------------*/

extern struct Window          *Window;
extern struct GfxBase         *GfxBase;
extern struct IntuitionBase   *IntuitionBase;
extern struct Library         *AslBase;
extern LABEL                  label[3][8];
extern int                    NLabel;
extern int                    CurLabel;
extern ADDR                   *address;
extern int                    SheetType;
extern int                    mb;            /* Menu bar height */
extern struct Gadget          *Line1,
                              *Line2,
                              *Line3,
                              *Line4,
                              *Line5,
                              *Line6,
                              *Line7,
                              *pos11,
                              *pos12,
                              *pos13,
                              *pos14,
                              *pos15,
                              *pos16,
                              *pos17,
                              *pos18,
                              *pos21,
                              *pos22,
                              *pos23,
                              *pos24,
                              *pos25,
                              *pos26,
                              *pos27,
                              *pos28,
                              *pos31,
                              *pos32,
                              *pos33,
                              *pos34,
                              *pos35,
                              *pos36,
                              *pos37,
                              *pos38,
                              *Kill,
                              *Next,
                              *Prev,
                              *Print;
extern struct Menu            *Menu1;
extern struct MenuItem        *MenuItem1,
                              *MenuItem2,
                              *MenuItem3,
                              *MenuItem4;
extern char                   Line1SIBuff[80],
                              Line2SIBuff[80],
                              Line3SIBuff[80],
                              Line4SIBuff[80],
                              Line5SIBuff[80],
                              Line6SIBuff[80],
                              Line7SIBuff[80],
                              GlobSepChar;

#endif
