#include "PopUpMenu.h" /* The menuwindows (must be palced first) */ struct WindowData SubWindow, ItemWindow, MenuWindow; /* Library base pointers */ struct DosLibrary *DOSBase; struct IntuitionBase *IntuitionBase; struct GfxBase *GfxBase; struct LayersBase *LayersBase; /* Our semaphore */ struct SignalSemaphore PopUpSemaphore; /* Pointers to intuition functions */ __fptr OldSetMenuStrip, OldClearMenuStrip, OldOnMenu, OldOffMenu; /* Structure to hold the size of itemwindow */ struct WindowSize Size; /* The currently select items */ struct MenuItem *CurrentSubItem, *CurrentItem, *TempItem; struct Menu *CurrentMenuPtr; UWORD CurrentMenuNr; WORDBITS LastSelected; /* if multiple select */ /* Size of the font used to draw the menues */ UWORD MenuFontSize; /* Mouse position on screen */ UWORD MouseX,MouseY; /* device request blocks */ struct IOStdReq *InputReqBlock; struct timerequest *TimerReqBlock; /* */ struct MsgPort *TimerPort; LONGBITS TimerSignal; struct MsgPort *ReplyPort; /* Pointer to the menus we use */ struct Menu *Menues; /* Used to hold the sorted menulist */ struct Remember SortRemember; struct MenuSort MenuSorted; /* Variables to hold the last selection */ struct Window *LastWindow; UWORD LastSelectedNum; /* Screen to draw on */ struct Screen *Screen; /* Type of screen (LORES / HIRES) */ BOOL ScreenType; /* A copy (almost) of the screens rastport */ struct RastPort Rp; /* Window with menues to use */ struct Window *ActiveWindow; /* Where to output messages */ BPTR StdOut; /* Pointer to segments (only if started from CLI) */ BPTR PopUpSeg; UWORD chip AmigaKeyHighRes[] = { 0xc000,0x0600, 0x0003,0xc000, 0x000f,0xc000, 0x0039,0xc000, 0x00e1,0xc000, 0x03ff,0xc000, 0x1f83,0xf000, 0xc000,0x0600 }; UWORD chip AmigaKeyLoRes[] = { 0x8004,0x00e0,0x01e0,0x0360,0x0660,0x0fe0,0x3cf0,0x8004 }; UWORD chip SubItemPointerL[] = { 0x7000,0x3000,0x1000,0x0000,0x1000,0x3000,0x7000 }; UWORD chip SubItemPointerH[] = { 0x3f00,0x0f00,0x0300,0x0000,0x0300,0x0f00,0x3f00 };