diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-06-15 13:58:08 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-06-15 13:58:08 -0700 |
commit | a5840f21020f6d568f82f84afe9fe99047a49f4a (patch) | |
tree | 72f8b28e8166268ee38174c2c7160804956297ad /078mouse.mu | |
parent | 7c0d16a79fba21e67d3b46f12f29042f84f997ba (diff) | |
download | mu-a5840f21020f6d568f82f84afe9fe99047a49f4a.tar.gz |
1566 - fake mouse clicks in scenarios
Diffstat (limited to '078mouse.mu')
-rw-r--r-- | 078mouse.mu | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/078mouse.mu b/078mouse.mu new file mode 100644 index 00000000..2590131f --- /dev/null +++ b/078mouse.mu @@ -0,0 +1,43 @@ +exclusive-container event [ + # update the ASSUME_EVENTS handler if you add more variants + keyboard:keyboard-event + mouse:mouse-event +] + +container keyboard-event [ + key:character +] + +container mouse-event [ + type:character + row:number + column:number +] + +container events [ + index:number + data:address:array:event +] + +recipe read-event [ + default-space:address:array:location <- new location:type, 30:literal + x:address:events <- next-ingredient + { + break-unless x:address:events + idx:address:number <- get-address x:address:events/deref, index:offset + buf:address:array:event <- get x:address:events/deref, data:offset + { + max:number <- length buf:address:array:event/deref + done?:boolean <- greater-or-equal idx:address:number/deref, max:number + break-unless done?:boolean + dummy:address:event <- new event:type + reply dummy:address:event/deref, x:address:events/same-as-ingredient:0 + } + result:event <- index buf:address:array:event/deref, idx:address:number/deref + idx:address:number/deref <- add idx:address:number/deref, 1:literal + reply result:event, x:address:events/same-as-ingredient:0 + } + # real event source + result:event <- read-keyboard-or-mouse-event + reply result:event +] |