/* Copyright ) Darin Johnson, 1989 */ #define VERSION "MyMenu v1.0" #define MYMENU_NAME "MyMenu" #define WBPORT_NAME "MyMenu-WBPort" #define DO_WB /* #define DO_PATH - not working yet */ /* #define DO_AREXX - future plans... */ #define SEPARATE 32 /* distance between menus */ #define STACK 4096 /* 2048 is too small */ struct ext_MenuItem { struct MenuItem MenuItem; struct ext_MenuItem *next_item; ULONG id; char *cmd; char *args; char type; }; struct Path { struct Path *path_Next; struct FileLock *path_Lock; }; /* would declare whole thing 'volatile' if allowed */ struct MMData { struct MsgPort port; struct ext_MenuItem *item_list; struct Menu *my_menu, *prev_menu, *WBMenu; struct Window *WBWindow; struct Task *handler_task, *parent_task; USHORT parent_sig, handler_sig; char error_code; struct Segment *segment; struct Path *CLI_path; /* copy of CLI path */ }; extern struct MMData *MM; extern struct ext_MenuItem *add_menu(); /* error codes */ #define ERR_OK 0 #define ERR_LIB 1 #define ERR_WIN 2 #define ERR_MON 3 #define ERR_WB_OPEN 4