home *** CD-ROM | disk | FTP | other *** search
- #define ABSEXECBASE ((struct ExecBase **)4L)
-
- /* this is for lattice bug with 16-bit ints */
- #undef RMBTRAP
- #define RMBTRAP 0x00010000L
-
- /* this is for missing limits */
- #define WORD_MIN SHRT_MIN
- #define WORD_MAX SHRT_MAX
- #define UWORD_MIN USHRT_MIN
- #define UWORD_MAX USHRT_MAX
-
- /* this is for bug in AddSemaphore */
- #undef AddSemaphore
- #define AddSemaphore(SS) InitSemaphore(SS),\
- Enqueue(&((*ABSEXECBASE)->SemaphoreList),\
- &((SS)->ss_Link))
-
- /* this is a fake intuimessage-class used to quit the popupmenu program */
- #define QUITPOPUPMENU 0
-
- #define HIGHLIGHTON 0
- #define HIGHLIGHTOFF 1
-
- #define BORDERSIZE 2
-
- #define AND &&
- #define OR ||
-
- #define ITEMWINDOW 0
- #define SUBWINDOW SHRT_MAX
- /* used for drawing commandkeys */
- #define LORESSCREEN TRUE
- #define HIRESSCREEN FALSE
-
- /* used by DrawMenuItem */
- #define SELECTFILL 1
- #define ITEMFILL 0
- #define CLEAROLD TRUE
- #define DONTCLEAROLD FALSE
-
- struct WindowSize {
- WORD Left, Top, Right, Bottom;
- };
-
- union FillTypes {
- APTR APTR;
- struct IntuiText *IText;
- struct Image *Image;
- };
-
- struct WindowData {
- BOOL BitMapOk;
- WORD LeftEdge, TopEdge;
- WORD RightEdge, Bottom;
- WORD Width, Height;
- WORD TopValue, LeftValue;
- struct MenuItem *Items;
- struct BitMap Bm;
- };
-
- struct SignalData {
- struct Task *PopUpMenuTask;
- LONGBITS MenuUpSig;
- LONGBITS MenuDownSig;
- LONGBITS MouseMovedSig;
- LONGBITS SelectDownSig;
- BOOL Down;
- };
-
- /* My functioms */
-
- VOID WriteAndClose(STRPTR,ULONG);
- VOID PopUpMainLoop(struct SignalData *, struct MsgPort *);
- VOID PopUpMenu(struct SignalData *);
- VOID QueueTimer(VOID);
- VOID InitGlobals(VOID);
- BOOL OpenMenuWindow(WORD);
- VOID HighLightItem(struct MenuItem *, struct WindowData *, UWORD);
- VOID HighLightCurrItemBehind(UWORD);
- struct MenuItem *FindMouseItem(struct WindowData *);
- VOID SelectItem(VOID);
- VOID OpenItemWindow(struct WindowData *, struct WindowData *, WORD, UWORD);
- VOID CheckItemSize(struct WindowSize *,struct MenuItem *,LONG);
- VOID CloseItemWindow(struct WindowData *);
- VOID ToggleMenu(UWORD,struct Menu *);
- VOID DrawAllItems(struct WindowData *);
- VOID DrawMenuItem(struct MenuItem *, struct WindowData *, UWORD, BOOL);
- struct Menu *FindMenuPtr(UWORD);
- WORDBITS FinalSelect(VOID);
- VOID CheckMark(struct MenuItem *,struct MenuItem *);
- UWORD FindItemNr(struct MenuItem *, struct MenuItem *);
- VOID TellWindow(WORDBITS);
- BOOL BuildBitMap(struct WindowData *);
- VOID ClearWindow(struct WindowData *);
- VOID RemoveBitMap(struct WindowData *);
- BOOL MouseInWindow(struct WindowData *);
- WORD SendMessage(struct MsgPort *);
- struct IntuiMessage *BuildIntuiMsg(struct MsgPort *, ULONG, UWORD);
- struct InputEvent *PopUpHandler(struct InputEvent *,struct SignalData *);
- ULONG Mystrlen(STRPTR);
- VOID SwapBits(struct WindowData *);
-
- #define DeleteStdIO(IOReq) FreeMem((IOReq),sizeof(struct IOStdReq))
-
-