From: <kr_...@us...> - 2003-04-14 17:36:57
|
Update of /cvsroot/htoolkit/port/src/Port In directory sc8-pr-cvs1:/tmp/cvs-serv3723/src/Port Modified Files: Handlers.hs Log Message: Add TimerDestroy event Index: Handlers.hs =================================================================== RCS file: /cvsroot/htoolkit/port/src/Port/Handlers.hs,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** Handlers.hs 1 Apr 2003 23:54:20 -0000 1.18 --- Handlers.hs 14 Apr 2003 17:36:53 -0000 1.19 *************** *** 32,36 **** -- * Timers ! ,setTimerHandler, setTimerDefHandler, getTimerHandler, getAllTimerHandles -- * Windows --- 32,38 ---- -- * Timers ! ,setTimerHandler, setTimerDefHandler, getTimerHandler ! ,setTimerDestroyHandler, setTimerDestroyDefHandler, getTimerDestroyHandler ! ,getAllTimerHandles -- * Windows *************** *** 575,581 **** handleProcessDestroy = readMVar handlersProcessDestroy >>= id ! {----------------------------------------------------------------------------------------- ! Timers ! -----------------------------------------------------------------------------------------} {-# NOINLINE handlersTimer #-} handlersTimer :: MVar (PtrMap TimerHandle (IO ())) --- 577,583 ---- handleProcessDestroy = readMVar handlersProcessDestroy >>= id ! ----------------------------------------------------------------------------------------- ! -- Timers ! ----------------------------------------------------------------------------------------- {-# NOINLINE handlersTimer #-} handlersTimer :: MVar (PtrMap TimerHandle (IO ())) *************** *** 602,605 **** --- 604,632 ---- getAllTimerHandles = fmap keys (readMVar handlersTimer) + ----------------------------------------------------------------------------------------- + -- TimerDestroy + ----------------------------------------------------------------------------------------- + + {-# NOINLINE handlersTimerDestroy #-} + handlersTimerDestroy :: MVar (PtrMap TimerHandle (IO ())) + handlersTimerDestroy + = unsafePerformIO (newMVar empty) + + handleTimerDestroy :: TimerHandle -> IO () + handleTimerDestroy htimer + = invokeHandler htimer handlersTimerDestroy id + + setTimerDestroyHandler :: TimerHandle -> IO () -> IO () + setTimerDestroyHandler htimer handler + = setHandler htimer handler handlersTimerDestroy + + setTimerDestroyDefHandler :: TimerHandle -> IO () + setTimerDestroyDefHandler htimer + = setDefHandler htimer handlersTimerDestroy + + getTimerDestroyHandler :: TimerHandle -> IO (IO ()) + getTimerDestroyHandler htimer + = getHandler htimer (return ()) handlersTimerDestroy + {----------------------------------------------------------------------------------------- foreign exports *************** *** 620,623 **** --- 647,651 ---- foreign export ccall handleMenusUpdate :: IO () foreign export ccall handleTimer :: TimerHandle -> IO () + foreign export ccall handleTimerDestroy :: TimerHandle -> IO () foreign export ccall handleProcessDismiss :: IO () foreign export ccall handleProcessDestroy :: IO () |