/* Header file for SSS */
/* Tue,30 Jul 1991 */
/* Copyright C.T.Stretch 1991 */


#include "wimp.h"
#include "wimpt.h"
#include "win.h"
#include "event.h"
#include "baricon.h"
#include "res.h"
#include "menu.h"
#include "template.h"
#include "dbox.h"
#include "werr.h"
#include "xferrecv.h"
#include "saveas.h"
#include "flex.h"
#include "bbc.h"
#include "visdelay.h"

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <math.h>
#include <errno.h>

#define SSSTYPE 0x0E3
#define BEEP bbc_vdu(7)

#define NCOLS 50
#define INITNCOLS 20
#define INITNROWS 20
#define INITWIDTH 8
#define LINEHT 40
#define CHWIDTH 16
#define YOFF 8
#define XOFF 8
#define BUFLEN 256

#define FSTRING 0
#define FLONG   1
#define FINT    2
#define F2DP    3
#define F4DP    4
#define FEXP    5
#define FMASK   15
#define FPERROR  16
#define FAERROR  32

#define ICOK     0
#define ICEDIT   1
#define ICFORMAT 2
#define ICNEXT   3
#define ICCANCEL 4
#define ICABS    5
#define ICREL    6
#define ICWRITE  7
#define ICSTRING 8
#define ICRIGHT  14


typedef struct entry
{ int t:4;
  int p:1;
  int a:1;
  int u:1;
  double v;
  char c;
} entry;

extern  entry **sheet;
extern wimp_w swind;
extern int dispwidth;
extern int nrows,ncols,sx0,sx1,sy0,sy1;
extern int bx0,by1,bw,bh;
extern int ex0,ex1,ey0,ey1;
extern int ebx0,eby1,ebw,ebh;
extern int width[NCOLS];
extern int vx,vy;
extern BOOL perr,fixed;
extern char *expr;
extern double value;
extern char buf[];
extern char fname[BUFLEN];
extern int uy;
extern BOOL autox,changed;
extern int prwidth;
extern BOOL repfirst;
extern BOOL mono;
extern char sep[4];

void sheet_change(void);
void sheet_clear(int);
BOOL sheet_init(void);
void sheet_box(void);
void sheet_ebox(void);
void sheet_getentry(int,int,int);
void sheet_update(void);
void sheet_newrow(void);
void sheet_newcol(void);
void sheet_delrow(void);
void sheet_delcol(void);
void sheet_bcopy(void);
void sheet_sort(void);
void sheet_home(void);
BOOL io_save(char*,void*);
BOOL io_read(BOOL);
void io_load(char*);
BOOL io_pr(char*,void*);
void io_merge(void);
void eval (void);
BOOL graph_bars(char*,void*);
BOOL graph_line(char*,void*);
