commit 6f34459ca03875aa484ad0e76c16e3eaed972cbd
parent cbc04f4ea3eca371d09bf8ec99e1031d1dbc2bab
Author: Ryan Culpepper <ryanc@racket-lang.org>
Date: Fri, 5 Nov 2010 00:39:03 -0600
macro-stepper: options: draw-arrows?, refresh-on-resize?
original commit: f97428ab1edb0208ca19521c484df60de01e57e2
Diffstat:
5 files changed, 36 insertions(+), 14 deletions(-)
diff --git a/collects/macro-debugger/syntax-browser/prefs.rkt b/collects/macro-debugger/syntax-browser/prefs.rkt
@@ -15,11 +15,13 @@
(preferences:set-default 'SyntaxBrowser:Height 600 number?)
(preferences:set-default 'SyntaxBrowser:PropertiesPanelPercentage 1/3 number?)
(preferences:set-default 'SyntaxBrowser:PropertiesPanelShown #t boolean?)
+(preferences:set-default 'SyntaxBrowser:DrawArrows? #t boolean?)
(define pref:width (pref:get/set 'SyntaxBrowser:Width))
(define pref:height (pref:get/set 'SyntaxBrowser:Height))
(define pref:props-percentage (pref:get/set 'SyntaxBrowser:PropertiesPanelPercentage))
(define pref:props-shown? (pref:get/set 'SyntaxBrowser:PropertiesPanelShown))
+(define pref:draw-arrows? (pref:get/set 'SyntaxBrowser:DrawArrows?))
(define pref:invert-colors? (pref:get/set 'framework:white-on-black?))
@@ -68,7 +70,8 @@
(width pref:width)
(height pref:height)
(props-percentage pref:props-percentage)
- (props-shown? pref:props-shown?))
+ (props-shown? pref:props-shown?)
+ (draw-arrows? pref:draw-arrows?))
(super-new)))
diff --git a/collects/macro-debugger/syntax-browser/widget.rkt b/collects/macro-debugger/syntax-browser/widget.rkt
@@ -157,15 +157,16 @@
binders))
(send display refresh)
;; Make arrows (& billboards, when enabled)
- (for ([id (send/i range range<%> get-identifier-list)])
- (define definite? (hash-ref definite-table id #f))
- (when #f ;; DISABLED
- (add-binding-billboard start range id definite?))
- (for ([binder (get-binders id)])
- (for ([binder-r (send/i range range<%> get-ranges binder)])
- (for ([id-r (send/i range range<%> get-ranges id)])
- (add-binding-arrow start binder-r id-r definite?))))))
- (void)))
+ (when (send config get-draw-arrows?)
+ (for ([id (send/i range range<%> get-identifier-list)])
+ (define definite? (hash-ref definite-table id #f))
+ (when #f ;; DISABLED
+ (add-binding-billboard start range id definite?))
+ (for ([binder (get-binders id)])
+ (for ([binder-r (send/i range range<%> get-ranges binder)])
+ (for ([id-r (send/i range range<%> get-ranges id)])
+ (add-binding-arrow start binder-r id-r definite?))))))
+ (void))))
(define/private (add-binding-arrow start binder-r id-r definite?)
(if definite?
diff --git a/collects/macro-debugger/view/frame.rkt b/collects/macro-debugger/view/frame.rkt
@@ -58,7 +58,8 @@
(send/i config config<%> set-width w)
(send/i config config<%> set-height h)
(unless (and (= w0 w) (= h0 h))
- (send/i widget widget<%> update/preserve-view))
+ (when (send/i config config<%> get-refresh-on-resize?)
+ (send/i widget widget<%> update/preserve-view)))
(set!-values (w0 h0) (values w h)))
(define warning-panel
@@ -192,9 +193,11 @@
(menu-option/notify-box extras-menu
"Highlight redex/contractum"
(get-field highlight-foci? config))
+ #|
(menu-option/notify-box extras-menu
"Highlight frontier"
(get-field highlight-frontier? config))
+ |#
(menu-option/notify-box extras-menu
"Include renaming steps"
(get-field show-rename-steps? config))
@@ -202,6 +205,12 @@
"One term at a time"
(get-field one-by-one? config))
(menu-option/notify-box extras-menu
+ "Refresh on resize"
+ (get-field refresh-on-resize? config))
+ (menu-option/notify-box extras-menu
+ "Draw binding arrows"
+ (get-field draw-arrows? config))
+ (menu-option/notify-box extras-menu
"Extra navigation"
(get-field extra-navigation? config)))
diff --git a/collects/macro-debugger/view/interfaces.rkt b/collects/macro-debugger/view/interfaces.rkt
@@ -4,7 +4,9 @@
(provide (all-defined-out))
(define-interface config<%> (sb:config<%>)
- ((sb:methods:notify macro-hiding-mode
+ ((sb:methods:notify draw-arrows?
+ refresh-on-resize?
+ macro-hiding-mode
show-hiding-panel?
identifier=?
highlight-foci?
diff --git a/collects/macro-debugger/view/prefs.rkt b/collects/macro-debugger/view/prefs.rkt
@@ -14,6 +14,8 @@
(preferences:set-default 'MacroStepper:Frame:Height 600 number?)
(preferences:set-default 'MacroStepper:PropertiesShown? #f boolean?)
(preferences:set-default 'MacroStepper:PropertiesPanelPercentage 1/3 number?)
+(preferences:set-default 'MacroStepper:DrawArrows? #t boolean?)
+
(preferences:set-default 'MacroStepper:MacroHidingMode "Standard" string?)
(preferences:set-default 'MacroStepper:ShowHidingPanel? #t boolean?)
(preferences:set-default 'MacroStepper:IdentifierComparison "bound-identifier=?" string?)
@@ -27,11 +29,14 @@
(preferences:set-default 'MacroStepper:SplitContext? #f boolean?)
(preferences:set-default 'MacroStepper:MacroStepLimit 40000
(lambda (x) (or (eq? x #f) (exact-positive-integer? x))))
+(preferences:set-default 'MacroStepper:RefreshOnResize? #t boolean?)
(define pref:width (pref:get/set 'MacroStepper:Frame:Width))
(define pref:height (pref:get/set 'MacroStepper:Frame:Height))
(define pref:props-shown? (pref:get/set 'MacroStepper:PropertiesShown?))
(define pref:props-percentage (pref:get/set 'MacroStepper:PropertiesPanelPercentage))
+(define pref:draw-arrows? (pref:get/set 'MacroStepper:DrawArrows?))
+
(define pref:macro-hiding-mode (pref:get/set 'MacroStepper:MacroHidingMode))
(define pref:show-hiding-panel? (pref:get/set 'MacroStepper:ShowHidingPanel?))
(define pref:identifier=? (pref:get/set 'MacroStepper:IdentifierComparison))
@@ -44,7 +49,7 @@
(define pref:debug-catch-errors? (pref:get/set 'MacroStepper:DebugCatchErrors?))
(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 macro-stepper-config-base%
(class* prefs-base% (config<%>)
@@ -58,6 +63,7 @@
(height pref:height)
(props-percentage pref:props-percentage)
(props-shown? pref:props-shown?)
+ (draw-arrows? pref:draw-arrows?)
(macro-hiding-mode pref:macro-hiding-mode)
(show-hiding-panel? pref:show-hiding-panel?)
(identifier=? pref:identifier=?)
@@ -68,7 +74,8 @@
(one-by-one? pref:one-by-one?)
(extra-navigation? pref:extra-navigation?)
(debug-catch-errors? pref:debug-catch-errors?)
- (split-context? pref:split-context?))
+ (split-context? pref:split-context?)
+ (refresh-on-resize? pref:refresh-on-resize?))
(super-new)))
(define macro-stepper-config/prefs%