definition module osevent // Clean Object I/O library, version 1.2 from StdInt import class ^(..), instance ^ Int, class -(..), instance - Int from clCrossCall_12 import :: CrossCallInfo from ostoolbox import :: OSToolbox from ostime import :: OSTime from ostypes import :: OSWindowPtr from StdMaybe import :: Maybe :: *OSEvents osNewEvents :: OSEvents //osCopyEvents :: !OSEvents -> (!OSEvents,!OSEvents) PA: not used osAppendEvents :: !*[OSEvent] !OSEvents -> OSEvents // osAppendEvents adds events at the end of the queue osInsertEvents :: !*[OSEvent] !OSEvents -> OSEvents // osInsertEvents adds events at the front of the queue osIsEmptyEvents :: !OSEvents -> (!Bool,!OSEvents) osRemoveEvent :: !OSEvents -> (!OSEvent,!OSEvents) :: OSEvent :== CrossCallInfo :: OSSleepTime // The max time the process allows multi-tasking :== Int osNullEvent :: OSEvent // osNullEvent returns a valid non-informative event // OSLongSleep :: OSSleepTime OSLongSleep :== 2^15-1 // OSNoSleep :: OSSleepTime OSNoSleep :== 0 osHandleEvents :: !(.s -> (Bool,.s)) !(.s -> (OSEvents,.s)) !((OSEvents,.s) -> .s) !(.s -> (Int,.s)) !(OSEvent -> .s -> ([Int],.s)) !(!.s,!*OSToolbox) -> (!.s,!*OSToolbox) osEventIsUrgent :: !OSEvent -> Bool setReplyInOSEvent :: ![Int] -> OSEvent /* createOS(Dea/A)ctivateWindowEvent creates the event the platform would generate for a genuine (de)activate event. */ createOSActivateWindowEvent :: !OSWindowPtr !*OSToolbox -> (!OSEvent,!*OSToolbox) createOSDeactivateWindowEvent :: !OSWindowPtr !*OSToolbox -> (!OSEvent,!*OSToolbox) /* createOS(Dea/A)ctivateControlEvent creates the event the platform would generate for a genuine (de)activate event. */ createOSActivateControlEvent :: !OSWindowPtr !OSWindowPtr !*OSToolbox -> (!OSEvent,!*OSToolbox) createOSDeactivateControlEvent :: !OSWindowPtr !OSWindowPtr !*OSToolbox -> (!OSEvent,!*OSToolbox) /* createOSLoose(Mouse/Key)Event creates the event for reporting loss of mouse/keyboard input (virtual event). */ createOSLooseMouseEvent :: !OSWindowPtr !OSWindowPtr !*OSToolbox -> (!OSEvent,!*OSToolbox) createOSLooseKeyEvent :: !OSWindowPtr !OSWindowPtr !*OSToolbox -> (!OSEvent,!*OSToolbox) /* createOSZeroTimerEvent creates the event for reporting continued zero timer (virtual event). getOSZeroTimerStartTime returns the registered time in the virtual event. Nothing is returned if wrong argument. */ createOSZeroTimerEvent :: !OSTime -> OSEvent getOSZeroTimerStartTime :: !OSEvent -> Maybe OSTime