stevenl@szebra.uucp (Steven Loomis) (11/08/90)
(sorry this was in the wrong ng) From stevenl Wed Nov 7 22:30:43 PST 1990 I am having problems with XWINDOWS. the code compiles right (this code just needs the handle types corerced) but the window appears, but then their is a bus error. This current code, MPW LINK says "data initialation code not being called". Please mail me and I will summarize to the net. typedef struct { Point stPt,enPt; } myPoints,*myPP,**myPH; pascal void testWind(XCmdPtr paramPtr) { WindowPtr ourw; Rect r,tr; auto XWEventInfoPtr xwp; GrafPtr savePort; long gwRst; WindowPtr xw; myPH pointH; myPP pointP; if (paramPtr->paramCount == -1) { SetRect(&r,20,20,100,100); SetRect(&tr,10,10,20,20); /* an event ! */ xwp = (XWEventInfoPtr)paramPtr->params[0]; switch (xwp->event.what) { case xOpenEvt: { pointH = (myPH)NewHandle(sizeof(myPoints)); if (pointH == 0L) exit(); HLock(pointH); pointP = *pointH; SetPt(&pointP->stPt,10,10); SetPt(&pointP->enPt,20,20); HUnlock(pointH); SetWRefCon(xwp->eventWindow,(long)pointH); } break; case xCloseEvt: pointH = (myPH)GetWRefCon(xwp->eventWindow); DisposHandle(pointH); SetWRefCon(xwp->eventWindow,0); break; /*case xGetPropEvt: { /*if(StringEqual(paramPtr,"\pstpt",xwp->eventParams[0]) { } }break;*/ case xSetPropEvt: { pointH = (myPH)GetWRefCon(xwp->eventWindow); if (pointH) { HLock(pointH); pointP = *pointH; if(StringEqual(paramPtr,"\pstpt",(StringPtr)xwp->eventParams[0])) { paramPtr->passFlag = 0; HLock(xwp->eventParams[1]); StrToPoint(paramPtr,(StringPtr)xwp->eventParams[1],&pointP->stPt); HUnlock(xwp->eventParams[1]); InvalRect(&xwp->eventWindow->portRect); } else { if(StringEqual(paramPtr,"\penpt",(StringPtr)xwp->eventParams[0])) { paramPtr->passFlag = 0; HLock(xwp->eventParams[1]); StrToPoint(paramPtr,(StringPtr)xwp->eventParams[1],&pointP->enPt); HUnlock(xwp->eventParams[1]); InvalRect(&xwp->eventWindow->portRect); } else paramPtr->passFlag = 1; } HUnlock(pointH); } else { paramPtr->passFlag = 1; } }break; case mouseDown: DragWindow(xwp->eventWindow,xwp->event.where,&qd.screenBits.bounds); break; case updateEvt: { BeginUpdate(xwp->eventWindow); GetPort(&savePort); SetPort(xwp->eventWindow); pointH = (myPH)GetWRefCon(xwp->eventWindow); if (pointH) { HLock(pointH); pointP = *pointH; MoveTo(pointP->stPt.h,pointP->stPt.v); LineTo(pointP->enPt.h,pointP->enPt.v); } EndUpdate(xwp->eventWindow); } break; default: paramPtr->passFlag = 1; break; }; } else { ourw = GetNewXWindow(paramPtr,'WIND',1029,0,0); if (ourw == 0L) { DebugStr("\pGetNewXWindow returns nil."); } else { /*GetPort(&savePort); SetPort(xwp->eventWindow); FrameRect(&tr); InsetRect(&tr,20,5); InvertRect(&tr); SetPort(savePort);*/ } } } Please post to me and I'll summarize to the net. Thanks. --mr ball (SMUG BBS sysop) BBS:415-723-7685 --(Steven Loomis), (amoeba man) --usenet: ...amdahl!apple!claris!szebra!stevenl -- :) -- /------------------------------------\ | #include <StdDisclaimer.h> | +====================================+ -- /------------------------------------\ | #include <StdDisclaimer.h> | +====================================+