diff options
-rw-r--r-- | edit/005-sandbox.mu | 34 | ||||
-rw-r--r-- | sandbox/005-sandbox.mu | 34 |
2 files changed, 64 insertions, 4 deletions
diff --git a/edit/005-sandbox.mu b/edit/005-sandbox.mu index ae322545..2be439e3 100644 --- a/edit/005-sandbox.mu +++ b/edit/005-sandbox.mu @@ -272,13 +272,13 @@ def render-sandboxes screen:&:screen, sandbox:&:sandbox, left:num, right:num, ro load-ingredients return-unless sandbox screen-height:num <- screen-height screen - at-bottom?:bool <- greater-or-equal row, screen-height - return-if at-bottom? hidden?:bool <- lesser-than idx, render-from { break-if hidden? # render sandbox menu row <- add row, 1 + at-bottom?:bool <- greater-or-equal row, screen-height + return-if at-bottom? screen <- move-cursor screen, row, left screen <- render-sandbox-menu screen, idx, left, right # save menu row so we can detect clicks to it later @@ -340,6 +340,36 @@ def render-sandbox-menu screen:&:screen, sandbox-index:num, left:num, right:num clear-line-until screen, right, 52/background-red ] +scenario skip-rendering-sandbox-menu-past-bottom-row [ + trace-until 100/app # trace too long + assume-screen 100/width, 7/height + # recipe editor is empty + assume-resources [ + ] + # create two sandboxes such that the top one just barely fills the screen + env:&:environment <- new-programming-environment resources, screen, [] + render-all screen, env, render + assume-console [ + left-click 1, 75 + type [add 1, 1] + press F4 + type [add 2, 2] + press F4 + ] + run [ + event-loop screen, console, env, resources + ] + screen-should-contain [ + . run (F4) . + . ┊ . + .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊─────────────────────────────────────────────────. + . ┊0 edit copy to recipe delete . + . ┊add 2, 2 . + . ┊4 . + . ┊─────────────────────────────────────────────────. + ] +] + # divide up the menu bar for a sandbox into 3 segments, for edit/copy/delete buttons # delete-button-right == right # all left/right pairs are inclusive diff --git a/sandbox/005-sandbox.mu b/sandbox/005-sandbox.mu index b35f3d13..7e760502 100644 --- a/sandbox/005-sandbox.mu +++ b/sandbox/005-sandbox.mu @@ -257,13 +257,13 @@ def render-sandboxes screen:&:screen, sandbox:&:sandbox, left:num, right:num, ro env:&:environment, _/optional <- next-ingredient return-unless sandbox screen-height:num <- screen-height screen - at-bottom?:bool <- greater-or-equal row, screen-height - return-if at-bottom? hidden?:bool <- lesser-than idx, render-from { break-if hidden? # render sandbox menu row <- add row, 1 + at-bottom?:bool <- greater-or-equal row, screen-height + return-if at-bottom? screen <- move-cursor screen, row, left screen <- render-sandbox-menu screen, idx, left, right # save menu row so we can detect clicks to it later @@ -323,6 +323,36 @@ def render-sandbox-menu screen:&:screen, sandbox-index:num, left:num, right:num clear-line-until screen, right, 52/background-red ] +scenario skip-rendering-sandbox-menu-past-bottom-row [ + trace-until 100/app # trace too long + assume-screen 50/width, 7/height + # recipes.mu is empty + assume-resources [ + ] + # create two sandboxes such that the top one just barely fills the screen + env:&:environment <- new-programming-environment resources, screen, [] + render-all screen, env, render + assume-console [ + left-click 1, 75 + type [add 1, 1] + press F4 + type [add 2, 2] + press F4 + ] + run [ + event-loop screen, console, env, resources + ] + screen-should-contain [ + . run (F4) . + . . + .──────────────────────────────────────────────────. + .0 edit copy delete . + .add 2, 2 . + .4 . + .──────────────────────────────────────────────────. + ] +] + # divide up the menu bar for a sandbox into 3 segments, for edit/copy/delete buttons # delete-button-right == right # all left/right pairs are inclusive |