/* prf.h V1.1 */ /* 9-3-92 */ #include /* #define DEUTSCH */ /* to create an english executable remove the line above */ #ifdef DEUTSCH #include "prf.deutsch.h" #else #include "prf.english.h" #endif /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* Define's */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ #define SYSTEM_VERSION 37L #define STR_SIZE 256 #define DEFAULT_LINES 66L #define DEFAULT_LMARGIN 0L #define DEFAULT_RMARGIN 128L #define DEFAULT_QUALITY 0L #define DEFAULT_PITCH 1L #define DEFAULT_CPI 2L #define DEFAULT_FLAGS (FLAG_DRAFT | FLAG_PITCH8 | FLAG_15CPI | FLAG_DISPLAY) #define FILE_UNKNOWN 0L #define FILE_TEXT 1L #define FILE_ILBM 2L #define FILE_FTXT 3L #define FILE_PROG 4L #define FILE_ICON 5L #define FILE_DIR 6L #define FLAG_DATE 1 #define FLAG_TIME (1 << 1) #define FLAG_FILE (1 << 2) #define FLAG_PAGE (1 << 3) #define FLAG_LINE (1 << 4) #define FLAG_CRLF (1 << 5) #define FLAG_FF (1 << 6) #define FLAG_PRINT (1 << 7) #define FLAG_DRAFT (1 << 8) #define FLAG_LQ (1 << 9) #define FLAG_IMMEDIATE (1 << 10) #define FLAG_OPENWINDOW (1 << 11) #define FLAG_PITCH6 (1 << 12) #define FLAG_PITCH8 (1 << 13) #define FLAG_10CPI (1 << 14) #define FLAG_12CPI (1 << 15) #define FLAG_15CPI (1 << 16) #define FLAG_DISPLAY (1 << 17) #define TOOLTYPE_WD "WINDOW" #define TOOLTYPE_FLAGS "FLAGS" #define TOOLTYPE_HEAD "HEADLINE" #define TOOLTYPE_FOOT "FOOTLINE" #define TOOLTYPE_LINES "LINES" #define TOOLTYPE_RMARGIN "RMARGIN" #define TOOLTYPE_LMARGIN "LMARGIN" #define CLI_WD 'w' #define CLI_DRAFT 'a' #define CLI_LQ 'q' #define CLI_PAGE 'p' #define CLI_DATE 'd' #define CLI_LINE 'l' #define CLI_FF 'f' #define CLI_CRLF 'c' #define CLI_10CPI '0' #define CLI_12CPI '2' #define CLI_15CPI '5' #define CLI_PITCH6 '6' #define CLI_PITCH8 '8' #define CLI_FILE 'n' #define CLI_TIME 't' #define CMD_NEUTRAL 0L #define CMD_PRINT 1L #define CMD_CHANGEAPP 2L #define CMD_QUIT 3L #define CMD_INSERTHEAD 4L #define CMD_INSERTTAIL 5L #define CMD_REMOVE 6L #define CMD_FILEREQ 7L #define CMD_DISPLAY 8L #define CMD_STR_INSERT 9L #define CMD_OPENPWD 10L #define CMD_CLOSEPWD 11L #define CMD_ABOUT 12L #define CMD_HEAD 13L #define CMD_FOOT 14L #define CMD_DATE_ON 15L #define CMD_TIME_ON 16L #define CMD_NAME_ON 17L #define CMD_FF_ON 18L #define CMD_CRLF_ON 19L #define CMD_PAGE_ON 20L #define CMD_LINE_ON 21L #define CMD_PITCH6 22L #define CMD_PITCH8 23L #define CMD_HEADL 24L #define CMD_FOOTL 25L #define CMD_RESETALL 26L #define CMD_CLEARLIST 27L #define CMD_OPENWD 28L #define CMD_CLOSEWD 29L #define CMD_RXQUIT 30L #define CMD_10CPI 31L #define CMD_12CPI 32L #define CMD_15CPI 33L #define CMD_LINES 34L #define CMD_DRAFT 35L #define CMD_LQ 36L #define CMD_LMARGIN 37L #define CMD_RMARGIN 38L #define CMD_DATE_OFF 39L #define CMD_TIME_OFF 40L #define CMD_NAME_OFF 41L #define CMD_FF_OFF 42L #define CMD_CRLF_OFF 43L #define CMD_PAGE_OFF 44L #define CMD_LINE_OFF 45L #define CMD_SAVEPREFS 46L #define CMD_STATUS 47L #define CMD_VERSION 48L /* rexx commands */ #define RXPORTNAME "PRINTFILES" #define RX_ERRORLEVEL 5L #define RX_VERSION_STR T_PRF T_VERSION #define T_RX_RESET "reset" #define T_RX_CLEAR "clear" #define T_RX_INSFILE "insfile" #define T_RX_REMFILE "remfile" #define T_RX_OPENWINDOW "openwindow" #define T_RX_CLOSEWINDOW "closewindow" #define T_RX_QUIT "quit" #define T_RX_PAGE "page" #define T_RX_FILE "filename" #define T_RX_TIME "time" #define T_RX_DATE "date" #define T_RX_LINE "line" #define T_RX_FF "ff" #define T_RX_CRLF "crlf" #define T_RX_HEAD "headline" #define T_RX_FOOT "footline" #define T_RX_LINES "lines" #define T_RX_RMARGIN "rmargin" #define T_RX_LMARGIN "lmargin" #define T_RX_DRAFT "draft" #define T_RX_LQ "lq" #define T_RX_PITCH6 "6li" #define T_RX_PITCH8 "8li" #define T_RX_10CPI "10cpi" #define T_RX_12CPI "12cpi" #define T_RX_15CPI "15cpi" #define T_RX_ON "on" #define T_RX_OFF "off" #define T_RX_CONTROL "control" #define T_RX_PREFS "prefs" #define T_RX_PRINT "print" #define T_RX_SAVEPREFS "saveprefs" #define T_RX_STATUS "status" #define T_RX_VERSION "version" #define T_RX_ERROR "Unknown command" #define T_RX_PMSG "printing" #define T_RX_WMSG "waiting" #define RX_CMD_NEUTRAL 0 #define RX_CMD_ON 1 #define GD_PwdButton 0 #define GD_About 1 #define GD_Headline 2 #define GD_Footline 3 #define GD_Date 4 #define GD_Time 5 #define GD_Filename 6 #define GD_Pagenumber 7 #define GD_Linenumber 8 #define GD_CRLF 9 #define GD_FF 10 #define GD_Gadget11 11 #define GD_List 12 #define GD_Filereq 13 #define GD_Remove 14 #define GD_Print 15 #define GD_quit 16 #define GD_Quality 17 #define GD_Pitch 18 #define GD_Linesperpage 19 #define GD_cpi 20 #define GD_Lmargin 21 #define GD_Rmargin 22 #define GD_Saveprefs 23 #define GD_PPrint 24 #define PGD GD_Quality /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* Data structure definition */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ union printerIO { struct IOStdReq ios; struct IODRPReq iodrp; struct IOPrtCmdReq iopc; }; struct FileNameNode { struct Node fnn_Node; char fnn_Name[STR_SIZE]; }; struct prf_info { struct Screen *PubScr; APTR VisualInfo; struct Window *Swd; struct Window *Pwd; struct IntuiMessage *imsg; struct AppMessage *amsg; struct RexxMsg *rmsg; union PrinterIO *pio; struct MsgPort *rexxPort; struct MsgPort *appPort; struct MsgPort *prtPort; struct AppWindow *aWnd; struct AppIcon *aicon; struct AppMenuItem *amenu; struct Gadget *SGlist; struct Gadget *PGlist; struct Gadget *SGadgets[17]; struct Gadget *PGadgets[20]; struct List FileList; ULONG Lines; ULONG Lmargin; ULONG Rmargin; ULONG Columns; ULONG signals; ULONG flags; ULONG BarHeight; UBYTE Headline[STR_SIZE]; UBYTE Footline[STR_SIZE]; UBYTE Statusline[STR_SIZE]; UBYTE Insertline[STR_SIZE]; APTR Special1; APTR Special2; APTR Special3; APTR Special4; }; union wbstart { char **args; struct WBStartup *msg; }; /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* prf_main.c */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* protos */ void main(int,union wbstart); long OpenLibs(struct prf_info *); void CloseLibs(struct prf_info *); void Prf_Reset(struct prf_info *); void SetPrfSignals(struct prf_info *); long HandleMsgs(struct prf_info *); void SavePreferences(struct prf_info *,UBYTE *); /* vars */ extern long _stack; extern char *_procname; extern long priority; extern long _BackGroundIO; extern BPTR _Backstdout; extern struct GfxBase *GfxBase; extern struct IntuitionBase *IntuitionBase; extern struct Library *WorkBenchBase; extern struct Library *GadToolsBase; extern struct Library *AslBase; extern struct Library *IconBase; extern struct RxsLib *RexxSysBase; extern struct TextAttr topaz8; extern char *dayname[]; extern char *monthname[]; /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* prf_apphandler.c */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* protos */ long OpenApp(struct prf_info *); void CloseApp(struct prf_info *); long HandleAmsg(struct prf_info *); void ChangeApp(struct prf_info *); /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* prf_imsghandler.c */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* protos */ long HandleImsg(struct prf_info *); /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* prf_swd.c */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* protos */ long OpenSwd(struct prf_info *); void CloseSwd(struct prf_info *); long OpenPwd(struct prf_info *); void ClosePwd(struct prf_info *); void RefreshSwd(struct prf_info *); void RefreshPwd(struct prf_info *); /* vars */ extern struct TagItem SwdTags[]; extern struct TagItem PwdTags[]; /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* prf_list.c */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* protos */ void InsertName(struct prf_info *); void RemoveName(struct prf_info *); void AttachList(struct prf_info *); void DetachList(struct prf_info *); /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* prf_docommand.c */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* protos */ long DoCommand(struct prf_info *,long); /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* prf_filereq.c */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* protos */ void Prf_FileReq(struct prf_info *); void Prf_SavePrefs(struct prf_info *,UBYTE *); /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* prf.rexx.c */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* protos */ long HandleRexxMsg(struct prf_info *); void AttemptOpenRexx(struct prf_info *); void CloseRexx(struct prf_info *); /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* prf_print.c */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* protos */ void PrintQueue(struct prf_info *); /* vars */ extern char *dayname[]; extern char *monthname[]; /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */