Listing 3: Ein Beispiel zur Programmierung eines Requesters. /* Requester.c */ #include #include #include #include #include #include #include struct Library *RequesterBase; struct IntuitionBase *IntuitionBase; int main() { Object *reqObj, *intObj, *strObj, *progObj; UBYTE buffer[11] = "default"; if((IntuitionBase = (struct IntuitionBase *) OpenLibrary("intuition.library",40))) { if((RequesterBase = OpenLibrary("requester.class",40))) { if(!(reqObj = (Object *) NewObject(REQUESTER_GetClass(),NULL, REQ_Type, REQTYPE_INFO, REQ_TitleText, "Request", REQ_BodyText, "Please select the request type\nyou will to test.", REQ_GadgetText, "_Integer|" "_String|" // "_Progress|" "_Cancel", TAG_DONE))) Printf("Error: info - requester object cannot created !\n"); if(!(intObj = (Object *) NewObject(REQUESTER_GetClass(),NULL, REQ_Type, REQTYPE_INTEGER, REQ_TitleText, "Integer-Request", REQ_BodyText, "Put in an integer ...", REQ_GadgetText, "C_ontinue|_Cancel", REQI_Minimum, 1, REQI_Maximum, 99999999, REQI_Invisible, FALSE, REQI_Number, 12345678, REQI_Arrows, TRUE, REQI_MaxChars, 8, TAG_DONE))) Printf("Error: integer - request object cannot created !\n"); if(!(strObj = (Object *) NewObject(REQUESTER_GetClass(),NULL, REQ_Type, REQTYPE_STRING, REQ_TitleText, "String-Request", REQ_BodyText, "Put in an string ...", REQ_GadgetText, "C_ontinue|_Cancel", REQS_Invisible, FALSE, REQS_Buffer, buffer, REQS_ShowDefault, TRUE, REQS_MaxChars, 10, //REQS_ChooserArray //REQS_ChooserActive TAG_DONE))) Printf("Error: string - requester object cannot created !\n"); // if(!(progObj = (Object *) NewObject(REQUESTER_GetClass(),NULL, // REQ_Type, REQTYPE_PROGRESS, // REQ_TitleText, "Progressbar-Request", // REQ_BodyText, "Show the progresbar filling ...", // REQ_GadgetText, "C_ontinue|_Cancel", // REQP_Total, 100, // REQP_Current, 25, // REQP_AbortText, "Cancel filling", // REQP_ProgressText, "Show the progresbar filling ...", // //REQP_OpenInactive // //REQP_NoText // //REQP_Dynamic // REQP_CenterWindow, TRUE, // REQP_LastPosition, FALSE, // REQP_Percent, TRUE, // REQP_Ticks, 10, // REQP_ShortTicks, TRUE, // TAG_DONE))) // Printf("Error: progress - requester object cannot created !\n"); if(reqObj) { struct orRequest my_orRequest = { RM_OPENREQ, NULL, IntuitionBase->ActiveWindow, NULL }; BOOL running = TRUE; while(running) { switch(DoMethodA(reqObj, (Msg)&my_orRequest)) { case 1: if(intObj && DoMethodA(intObj, (Msg)&my_orRequest) != 1) running = FALSE; break; case 2: if(strObj && DoMethodA(strObj, (Msg)&my_orRequest) != 1) running = FALSE; break; // case 3: if(progObj && DoMethodA(progObj, (Msg)&my_orRequest) != 1) running = FALSE; // break; default: running = FALSE; break; } } } if(reqObj) DisposeObject(reqObj); if(intObj) DisposeObject(intObj); if(strObj) DisposeObject(strObj); // if(progObj) DisposeObject(progObj); CloseLibrary(RequesterBase); } else Printf("Error: requester.class V40 cannot opened !\n"); CloseLibrary((struct Library *)IntuitionBase); } else Printf("Error: intuition.library V40 cannot opened !\n"); return( 0 ); }