DIRECTORY Buttons, ButtonsImpl, MBQueueImpl, Rope, Unclean, ViewerOps; UncleanImpl: CEDAR PROGRAM IMPORTS ButtonsImpl, MBQueueImpl, ViewerOps EXPORTS Unclean SHARES ButtonsImpl, MBQueueImpl = { SwapQueuedButtonProcs: PUBLIC PROC[buttonName: Rope.ROPE, miscreant: Buttons.ButtonProc] RETURNS[realProc: Buttons.ButtonProc_NIL] = { button: Buttons.Button = ViewerOps.FindViewer[buttonName]; buttonData: ButtonsImpl.ButtonData; clickInfo: MBQueueImpl.MyClickInfo; IF button=NIL THEN RETURN; buttonData _ NARROW[button.data]; IF buttonData=NIL THEN RETURN; clickInfo _ NARROW[buttonData.clientData]; IF clickInfo=NIL THEN RETURN; realProc_clickInfo.proc; clickInfo.proc _ miscreant; }; }. RUncleanImpl.mesa Last Edited by: Swinehart, April 30, 1984 1:07:01 pm PDT Êí˜J™J™8J™JšÏk œ=˜FJ˜šœ œ˜Jšœ$˜+Jšœ˜Jšœ˜#—˜šÏnœœœœ ˜XJšœœ˜-J˜:J˜#J˜#Jšœœœœ˜Jšœ œ˜!Jšœ œœœ˜Jšœ œ˜*Jšœ œœœ˜J˜J˜J˜J˜—J˜——…—°ï