/************************************************************************** * * WICON.H for wicon.c a *Window iconifier * * 1.7 08-May-88 Copyright (c) 1987,1988 Steven Sweeting 26-Mar-87 * **************************************************************************/ /* #define SMALLWICON /* for a smaller executable */ #include "intuition/intuitionbase.h" #include "devices/inputevent.h" #include "devices/input.h" #include "stdio.h" #define MAXWINFO 20 #define DBG(s) fputs(s,stderr) struct BoxInfo { SHORT LeftEdge, TopEdge; SHORT Width, Height; }; /* must be a longword multiple */ struct sWinfo { struct Window *Window; /* address of Window structure */ struct Window *IconWindow; /* address of the special Icon Window */ WORD Flags; /* Our own Flags */ WORD filler; }; /* These are for sWinfo.Flags */ #define WINFO_USED 1 /* This element is being used */ #define WINFO_CLOSING 2 /* This window is being closed */ #define WINFO_WAIT 4 /* This element is being modified */ WORD Winfos; struct sWinfo Winfo[ MAXWINFO ]; struct Screen *WiconScreen; struct Screen *WorkBenchScreen; struct MsgPort IconPort; LONG IconMask; void (*OWVector)(); void (*CWVector)(); #ifdef WICON__C struct NewWindow NewBackdrop = { 0,11, 0, 0, -1,-1, 0, BORDERLESS | BACKDROP | SIMPLE_REFRESH, NULL, NULL, NULL, NULL, NULL, 90,40, -1, -1, CUSTOMSCREEN }; struct Window *BackdropWindow=NULL; struct Window *WiconOpenW(); void WiconCloseW(); struct IntuitionBase *IntuitionBase = NULL; struct IconBase *IconBase = NULL; struct GfxBase *GfxBase = NULL; struct LayersBase *LayersBase = NULL; struct Window *PushedWindow = NULL; struct MsgPort *DeathPort = NULL; LONG SuicideMask = 0; struct Task *WiconTask = NULL; LONG PushMask = 0; LONG PushSignal = 0; struct IOStdReq *InputRequestBlock = NULL; BOOL InputDeviceOpen = FALSE; struct Interrupt WiconInterrupt = { 0 }; struct MsgPort *InputDevPort = NULL; #endif extern struct Library *OpenLibrary(); extern struct Task *FindTask(); extern LONG AllocSignal(); extern VOID FreeSignal(); extern struct MsgPort *CreatePort(); extern struct MsgPort *FindPort(); extern long Wait(); extern struct IOStdReq *CreateStdIO(); extern APTR AllocMem(); extern struct Task *FindTask(); extern struct InputEvent *WiconHandler(); #define WINDOW(layer) ((struct Window *)((layer)->Window)) #define SCREENTOP\ (theScreen->TopEdge << ((theScreen->ViewPort.Modes & LACE)? 0: 1)) extern struct Layer *WhichLayer(); extern struct Window *OpenWindow(); extern struct Window *OldOpenWindow(); extern void WiconHandlerStub(); extern void (*GetFunction())(); extern void (*SetFunction())(); extern void UnSetFunction(); #define LVOOpenWindow (-0xCCL) #define LVOCloseWindow (-0x48L) extern void SizeRec(); #ifndef SMALLWICON /* Arguments, explained in the .doc file */ BOOL Arg_AllScreens; WORD Arg_Boxes; WORD Arg_Chars; BOOL Arg_Depth; BOOL Arg_Execute; WORD Arg_FirstScreen; BOOL Arg_Iconify; WORD Arg_Lines; WORD Arg_Priority; BOOL Arg_Quiet; BOOL Arg_RMBTRAP; BOOL Arg_Sticky; BOOL Arg_Testing; BOOL Arg_WBWs; char *Arg_Window; /* I don't know whether this is Manx dependant or not */ extern struct WBStartup *WBenchMsg; #else SMALLWICON #define Arg_Boxes (20) #define Arg_Chars (12) #define Arg_Depth (TRUE) #define Arg_Execute (TRUE) #define Arg_Testing (FALSE) #define Arg_AllScreens (TRUE) #define Arg_FirstScreen (FALSE) #define Arg_Iconify (TRUE) #define Arg_Lines (1) #define Arg_Priority (0) #define Arg_Quiet (FALSE) #define Arg_RMBTRAP (FALSE) #define Arg_Sticky (FALSE) #define Arg_WBWs (FALSE) #define Arg_Window #endif SMALLWICON