/* WinHelp.c ** ** SCRAMmer V37.3 - 27th Aug 1992 ** ------------------------------ ** ** Copyright (c) Giuliano C. Peritore ** Via Amaseno, 6 ** 04100 Latina ** ITALY ** ** Phone: (+39) 773 491692 Voice Only ** EMAIL mc6040@mclink.it */ #include #include #include #include #include #include #include #include #include #include "SCRAMmer.h" LONG request_user(struct Window *,char *, char *, char *); VOID sleep_window(struct Window *); VOID wake_window(struct Window *); IMPORT struct Window *main_window; IMPORT struct Screen *def_pub_scr; struct Library *AmigaGuideBase=0; AMIGAGUIDECONTEXT handle=0; ULONG amigaguidesignal=-1; struct NewAmigaGuide nag={NULL}; STRPTR context[]={"MAIN",NULL}; VOID open_help(VOID) { if(!AmigaGuideBase) { if(AmigaGuideBase=OpenLibrary("amigaguide.library",33)) { nag.nag_BaseName ="ETI020_SCRAMmer3"; nag.nag_Name ="SCRAMmer.guide"; nag.nag_ClientPort="AGSCRAM_HELP"; nag.nag_Line =1; nag.nag_Screen =def_pub_scr; nag.nag_Context =context; } else request_user(main_window,GetString(MSG_SCRAMMER),GetString(MSG_NOAMIGAGUIDE),GetString(MSG_CANCEL)); } if(AmigaGuideBase) { if(!handle) { sleep_window(main_window); handle=OpenAmigaGuideAsync(&nag,NULL); wake_window(main_window); if(!handle) request_user(main_window,GetString(MSG_SCRAMMER),GetString(MSG_HELPNOGUIDE),GetString(MSG_CANCEL)); amigaguidesignal=AmigaGuideSignal(handle); SetAmigaGuideContext(handle,0L,NULL); } else { SetAmigaGuideContext(handle,0L,NULL); SendAmigaGuideContext(handle,NULL); } } } VOID close_help(VOID) { if(handle) { CloseAmigaGuide(handle); handle=0; } if(AmigaGuideBase) { CloseLibrary(AmigaGuideBase); AmigaGuideBase=0; } } VOID process_help(VOID) { struct AmigaGuideMsg *agm; while(agm=GetAmigaGuideMsg(handle)) { switch(agm->agm_Type) { case ActiveToolID: SetAmigaGuideContext(handle,0L,NULL); SendAmigaGuideContext(handle,NULL); break; } ReplyAmigaGuideMsg(agm); } }