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 ()
|