/* HandleIDCMP * ~~~~~~~~~~~ * Handle intuimessage and return an int to be processed * © Copyright 1991 Christian E. Hopps */ #include HandleIDCMP(int window, struct Window *win) { int flag; struct IntuiMessage *msg = NULL; ULONG class; struct Gadget *g; USHORT id; flag = 9; if(window) { while((msg = (struct IntuiMessage *)GetMsg(win->UserPort))) { class = msg->Class; if(class == GADGETUP) { g = (struct Gadget *)msg->IAddress; id = g->GadgetID; } ReplyMsg(msg); flag = (int)id + 1; printf("id = %d",id); } } else { while((msg = (struct IntuiMessage *)GetMsg(win->UserPort))) { class = msg->Class; ReplyMsg(msg); switch(class) { case NEWSIZE: /* Clear */ flag =(int)5; break; case CLOSEWINDOW: /* Angle */ flag =(int)0; break; case MOUSEBUTTONS: flag =(int)2; break; default: flag = (int)1; break; } } } return(flag); }