Listing 2: Arbeit mit Easy Requester /* EasyRequester.c */ #define __USE_BASETYPE__ #include #include #include #include #include struct IntuitionBase *IntuitionBase; struct IntuitionIFace *IIntuition; LONG EasyRequester(const STRPTR text, const STRPTR button, ...) { struct TagItem tags[] = { ESA_Position,REQPOS_CENTERSCREEN, TAG_DONE }; struct EasyStruct easyreq={ 0 }; easyreq.es_StructSize = sizeof(struct EasyStruct); easyreq.es_Flags = ESF_SCREEN | ESF_TAGGED | ESF_EVENSIZE; easyreq.es_Title = (UBYTE *)"EasyRequester - Beispiel"; easyreq.es_TextFormat = (UBYTE *)text; easyreq.es_GadgetFormat = (UBYTE *)button; easyreq.es_Screen = IntuitionBase->ActiveScreen; easyreq.es_TagList = &tags; return( IIntuition->EasyRequestArgs(NULL,&easyreq,NULL,(ULONG*)((&button)+1)) ); } int main() { int res = 0; if((IntuitionBase = (struct IntuitionBase *) IExec->OpenLibrary("intuition.library",50))) { if((IIntuition = (struct IntuitionIFace *) IExec->GetInterface((struct Library *)IntuitionBase,"main",1,NULL))) { res = EasyRequester("EasyRequester mit variabler Argumentenanzahl:\n%s %ld.%ld", "_Weiter|_Abbruch", IntuitionBase->LibNode.lib_Node.ln_Name, IntuitionBase->LibNode.lib_Version, IntuitionBase->LibNode.lib_Revision ); IExec->DropInterface((struct Interface *)IIntuition); } else IDOS->Printf("Interface in der intuition.library fehlt.\n"); IExec->CloseLibrary((struct Library *)IntuitionBase); } else IDOS->Printf("intuition.library V50 nicht zu öffnen.\n"); return( res ); }