h32995 s 00045/00000/00000 d D 1.1 91/03/08 04:49:05 hopkins 1 0 c date and time created 91/03/08 04:49:05 by hopkins e u U f e 0 t T I 1 % % A HyperNeWS Menu % % NOTE: altough ClassMenuCanvas is a subclass of ClassTrackingCanvas it % does NOT use any of the tracking functionality. It could also be a subclass % of ClassCanvas. % ClassMenu pop % load ClassMenu /ClassMenuCanvas ClassTrackingCanvas [] classbegin /menuprocess null def /Menuable? true def /onmenu nullproc def /MenuStart { % posname event -- posname event menu? boolean { currentprocess /ProcessName (HyperNeWS menu handler) put currentprocess /track_evt 3 -1 roll put currentprocess /menuok true put clear {onmenu} stopped pop currentprocess /menuok undef currentprocess /track_evt undef } fork { pause dup /State get dup /breakpoint eq { pop /menuprocess 1 index promote 3 -1 roll pop dup /menuposname get 3 1 roll /menumenu get true exit } if /runnable ne {pop false exit} if } loop } def /MenuStop { % menu -- pop menuprocess null ne { menuprocess /State get /breakpoint eq { menuprocess continueprocess } if /menuprocess unpromote } if } def classend def E 1