close current macro stepper frame on Run, Macro Stepper, etc

closes PR 11964
This commit is contained in:
Ryan Culpepper 2011-06-26 03:29:41 -06:00
parent a14723f27a
commit 0b47f0b7e2
4 changed files with 17 additions and 2 deletions

View File

@ -42,6 +42,7 @@
(define drscheme-macro-stepper-director%
(class macro-stepper-director%
(init-field filename)
(inherit-field stepper-frames)
(define eventspace (current-eventspace))
(define stepper #f)
@ -71,6 +72,12 @@
(filename filename)
(director this))))
(define/public (shutdown)
(when (pref:close-on-reset-console?)
(for ([(frame flags) (in-hash stepper-frames)])
(unless (memq 'no-obsolete flags)
(send frame show #f)))))
(super-new)))
@ -256,6 +263,7 @@
(super reset-console)
(when current-stepper-director
(send current-stepper-director add-obsoleted-warning)
(send current-stepper-director shutdown)
(set! current-stepper-director #f))
;; setting the eval handler at this point disables CM,

View File

@ -207,6 +207,9 @@
(menu-option/notify-box extras-menu
"Refresh on resize"
(get-field refresh-on-resize? config))
(menu-option/notify-box extras-menu
"Close old stepper on Run"
(get-field close-on-reset-console? config))
(menu-option/notify-box extras-menu
"Draw binding arrows"
(get-field draw-arrows? config))

View File

@ -6,6 +6,7 @@
unstable/gui/notify
unstable/gui/prefs)
(provide pref:macro-step-limit
pref:close-on-reset-console?
macro-stepper-config-base%
macro-stepper-config/prefs%
macro-stepper-config/prefs/readonly%)
@ -30,6 +31,7 @@
(preferences:set-default 'MacroStepper:MacroStepLimit 40000
(lambda (x) (or (eq? x #f) (exact-positive-integer? x))))
(preferences:set-default 'MacroStepper:RefreshOnResize? #t boolean?)
(preferences:set-default 'MacroStepper:CloseOnResetConsole? #t boolean?)
(define pref:width (pref:get/set 'MacroStepper:Frame:Width))
(define pref:height (pref:get/set 'MacroStepper:Frame:Height))
@ -50,6 +52,7 @@
(define pref:split-context? (pref:get/set 'MacroStepper:SplitContext?))
(define pref:macro-step-limit (pref:get/set 'MacroStepper:MacroStepLimit))
(define pref:refresh-on-resize? (pref:get/set 'MacroStepper:RefreshOnResize?))
(define pref:close-on-reset-console? (pref:get/set 'MacroStepper:CloseOnResetConsole?))
(define macro-stepper-config-base%
(class* prefs-base% (config<%>)
@ -75,7 +78,8 @@
(extra-navigation? pref:extra-navigation?)
(debug-catch-errors? pref:debug-catch-errors?)
(split-context? pref:split-context?)
(refresh-on-resize? pref:refresh-on-resize?))
(refresh-on-resize? pref:refresh-on-resize?)
(close-on-reset-console? pref:close-on-reset-console?))
(super-new)))
(define macro-stepper-config/prefs%

View File

@ -13,7 +13,7 @@
(define macro-stepper-director%
(class* object% (director<%>)
(define stepper-frames (make-hasheq))
(field [stepper-frames (make-hasheq)])
;; Flags is a subset(list) of '(no-obsolete no-new-traces)