#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
};

