2015-09-12 20:49:50 +00:00
|
|
|
## deleting sandboxes
|
|
|
|
|
|
|
|
scenario deleting-sandboxes [
|
2015-10-07 06:38:28 +00:00
|
|
|
trace-until 100/app # trace too long
|
2015-09-12 20:49:50 +00:00
|
|
|
assume-screen 50/width, 15/height
|
2016-01-20 07:18:03 +00:00
|
|
|
1:address:shared:array:character <- new []
|
|
|
|
2:address:shared:programming-environment-data <- new-programming-environment screen:address:shared:screen, 1:address:shared:array:character
|
2015-09-12 20:49:50 +00:00
|
|
|
# run a few commands
|
|
|
|
assume-console [
|
|
|
|
left-click 1, 0
|
|
|
|
type [divide-with-remainder 11, 3]
|
|
|
|
press F4
|
|
|
|
type [add 2, 2]
|
|
|
|
press F4
|
|
|
|
]
|
2016-01-20 07:18:03 +00:00
|
|
|
event-loop screen:address:shared:screen, console:address:shared:console, 2:address:shared:programming-environment-data
|
2015-09-12 20:49:50 +00:00
|
|
|
screen-should-contain [
|
|
|
|
. run (F4) .
|
|
|
|
. .
|
|
|
|
.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
|
2016-01-21 21:51:50 +00:00
|
|
|
.0 x.
|
2015-09-12 20:49:50 +00:00
|
|
|
.add 2, 2 .
|
|
|
|
.4 .
|
|
|
|
.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
|
2016-01-21 21:51:50 +00:00
|
|
|
.1 x.
|
2015-09-12 20:49:50 +00:00
|
|
|
.divide-with-remainder 11, 3 .
|
|
|
|
.3 .
|
|
|
|
.2 .
|
|
|
|
.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
|
|
|
|
. .
|
|
|
|
]
|
|
|
|
# delete second sandbox
|
|
|
|
assume-console [
|
|
|
|
left-click 7, 49
|
|
|
|
]
|
|
|
|
run [
|
2016-01-20 07:18:03 +00:00
|
|
|
event-loop screen:address:shared:screen, console:address:shared:console, 2:address:shared:programming-environment-data
|
2015-09-12 20:49:50 +00:00
|
|
|
]
|
|
|
|
screen-should-contain [
|
|
|
|
. run (F4) .
|
|
|
|
. .
|
|
|
|
.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
|
2016-01-21 21:51:50 +00:00
|
|
|
.0 x.
|
2015-09-12 20:49:50 +00:00
|
|
|
.add 2, 2 .
|
|
|
|
.4 .
|
|
|
|
.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
|
|
|
|
. .
|
|
|
|
. .
|
|
|
|
]
|
|
|
|
# delete first sandbox
|
|
|
|
assume-console [
|
|
|
|
left-click 3, 49
|
|
|
|
]
|
|
|
|
run [
|
2016-01-20 07:18:03 +00:00
|
|
|
event-loop screen:address:shared:screen, console:address:shared:console, 2:address:shared:programming-environment-data
|
2015-09-12 20:49:50 +00:00
|
|
|
]
|
|
|
|
screen-should-contain [
|
|
|
|
. run (F4) .
|
|
|
|
. .
|
|
|
|
.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
|
|
|
|
. .
|
|
|
|
. .
|
|
|
|
]
|
|
|
|
]
|
|
|
|
|
|
|
|
after <global-touch> [
|
|
|
|
# on a sandbox delete icon? process delete
|
|
|
|
{
|
|
|
|
was-delete?:boolean <- delete-sandbox *t, env
|
|
|
|
break-unless was-delete?
|
|
|
|
hide-screen screen
|
|
|
|
screen <- render-sandbox-side screen, env
|
|
|
|
screen <- update-cursor screen, current-sandbox
|
|
|
|
show-screen screen
|
|
|
|
loop +next-event:label
|
|
|
|
}
|
|
|
|
]
|
|
|
|
|
2016-01-20 07:18:03 +00:00
|
|
|
recipe delete-sandbox t:touch-event, env:address:shared:programming-environment-data -> was-delete?:boolean, env:address:shared:programming-environment-data [
|
2015-09-12 20:49:50 +00:00
|
|
|
local-scope
|
2015-11-13 06:31:49 +00:00
|
|
|
load-ingredients
|
2015-09-12 20:49:50 +00:00
|
|
|
click-column:number <- get t, column:offset
|
2016-01-20 07:18:03 +00:00
|
|
|
current-sandbox:address:shared:editor-data <- get *env, current-sandbox:offset
|
2015-09-12 20:49:50 +00:00
|
|
|
right:number <- get *current-sandbox, right:offset
|
|
|
|
at-right?:boolean <- equal click-column, right
|
|
|
|
reply-unless at-right?, 0/false
|
|
|
|
click-row:number <- get t, row:offset
|
2016-01-20 07:18:03 +00:00
|
|
|
prev:address:address:shared:sandbox-data <- get-address *env, sandbox:offset
|
|
|
|
curr:address:shared:sandbox-data <- get *env, sandbox:offset
|
2015-09-12 20:49:50 +00:00
|
|
|
{
|
|
|
|
break-unless curr
|
|
|
|
# more sandboxes to check
|
|
|
|
{
|
|
|
|
target-row:number <- get *curr, starting-row-on-screen:offset
|
|
|
|
delete-curr?:boolean <- equal target-row, click-row
|
|
|
|
break-unless delete-curr?
|
|
|
|
# delete this sandbox, rerender and stop
|
|
|
|
*prev <- get *curr, next-sandbox:offset
|
|
|
|
reply 1/true
|
|
|
|
}
|
|
|
|
prev <- get-address *curr, next-sandbox:offset
|
|
|
|
curr <- get *curr, next-sandbox:offset
|
|
|
|
loop
|
|
|
|
}
|
|
|
|
reply 0/false
|
|
|
|
]
|