//This is a drawing program void DrawIt() { ClearWindowText; } void Doodle() { I8 cmd,x1,y1,x2,y2,p1,p2,color=GR_BLACK; U4 old_update_window=Fs->update_window; U4 old_ip_double=Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK); U4 old_inhibit=ip_inhibit_win_operations; GrBitMap *base=GrNew(grbase); base->color=ROP_XOR+(color ^ GR_WHITE); ip_inhibit_win_operations=TRUE; MaximizeWindow; Fs->update_window=&DrawIt; GrClear; PutS("$$CL$$"); while (TRUE) { cmd=GetMsg(&p1,&p2, (1<update_window=old_update_window; GrClear; AssignBit(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK,old_ip_double); ip_inhibit_win_operations=old_inhibit; GrDel(base); return; } else if (cmd==MSG_IP_R_UP) { ip_inhibit_win_operations=FALSE; color=PopUpColor; base->color=ROP_XOR+(color ^ GR_WHITE); ip_inhibit_win_operations=TRUE; } else { x1=p1; y1=p2; x2=p1; y2=p2; while (cmd!=MSG_IP_L_UP) { GrLine3(base,x1,y1,0,x2,y2,0); cmd=GetMsg(&p1,&p2, (1<