diff options
Diffstat (limited to 'osevent.dcl')
-rw-r--r-- | osevent.dcl | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/osevent.dcl b/osevent.dcl new file mode 100644 index 0000000..5f91025 --- /dev/null +++ b/osevent.dcl @@ -0,0 +1,60 @@ +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
|