Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!samsung!uakari.primate.wisc.edu!sdd.hp.com!ucsd!ucbvax!ANDREW.CMU.EDU!gk5g+ From: gk5g+@ANDREW.CMU.EDU (Gary Keim) Newsgroups: comp.soft-sys.andrew Subject: Re: bug in proctable? Message-ID: <8bVCy_y00VsWIBlYxO@andrew.cmu.edu> Date: 4 Jan 91 21:11:38 GMT References: <0bVBezI91E6J47W48A@rchland.ibm.com> Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 51 Excerpts from misc: 4-Jan-91 bug in proctable? Dave Gross@rchland.iinus (2311+0) > So, I tried passing my own classinfo to the function. Note the > &myview_classinfo. [....] > This worked. My function was called when selected from the menu. The > problem is, there still is no way for me to call "frame-delete-window". A proctableEntry keeps the type of the object that it is associated with. That object-type must match the type of object that is associated with the menulist/keymap that causes it to be called. So, your third attempt is correct. The first two attempts fail because of the object-type mismatch. Now, inside of your deleteWindow() call-back you need to get a handle for the frame you want to destroy. void deleteWindow( self, ignore ) struct myview *self; long ignore; { struct im *im = myview_GetIM(self); struct frame *myframe = NULL; if(im) myframe = frame_Enumerate(getMyFrame,(long)im); if(myframe) { frame_SetView(myframe,NULL); im_SetView(im,NULL); frame_Destroy(myframe); im_Destroy(im); } } boolean getMyFrame( frame, im ) struct frame *frame; long im; { if(frame_GetIM(frame) == ((struct im *) im)) return(TRUE); else return(FALSE); } I don't know if there is an official way to call the function associated with a given proctableEntry. Anyway, that should do it. Gary Keim ATK Group