diff --git a/collects/drracket/private/drsig.rkt b/collects/drracket/private/drsig.rkt index c9228eff0f..b35d146d53 100644 --- a/collects/drracket/private/drsig.rkt +++ b/collects/drracket/private/drsig.rkt @@ -97,9 +97,10 @@ (module-language-online-expand-text-mixin module-language-online-expand-frame-mixin module-language-online-expand-tab-mixin - module-language-interactions-text-mixin - module-language-definitions-text-mixin - initialize-prefs-panel)) + module-language-big-defs/ints-interactions-text-mixin + module-language-big-defs/ints-definitions-text-mixin + initialize-prefs-panel + big-defs/ints-label<%>)) (define-signature drracket:module-language-tools-cm^ (frame-mixin diff --git a/collects/drracket/private/get-extend.rkt b/collects/drracket/private/get-extend.rkt index 154e54b299..91f3814cf0 100644 --- a/collects/drracket/private/get-extend.rkt +++ b/collects/drracket/private/get-extend.rkt @@ -77,7 +77,7 @@ (make-extender get-base-unit-frame% 'drracket:unit:frame)) (define (get-base-interactions-text%) - (drracket:module-language:module-language-interactions-text-mixin + (drracket:module-language:module-language-big-defs/ints-interactions-text-mixin (drracket:debug:test-coverage-interactions-text-mixin drracket:rep:text%))) @@ -85,9 +85,9 @@ (make-extender get-base-interactions-text% 'interactions-text%)) (define (get-base-definitions-text%) - (drracket:module-language:module-language-definitions-text-mixin - (drracket:module-language:module-language-online-expand-text-mixin - (drracket:module-language-tools:definitions-text-mixin + (drracket:module-language:module-language-online-expand-text-mixin + (drracket:module-language-tools:definitions-text-mixin + (drracket:module-language:module-language-big-defs/ints-definitions-text-mixin (drracket:debug:test-coverage-definitions-text-mixin (drracket:debug:profile-definitions-text-mixin (drracket:unit:get-definitions-text%))))))) diff --git a/collects/drracket/private/local-member-names.rkt b/collects/drracket/private/local-member-names.rkt index 742c8e6545..68fb3f23f0 100644 --- a/collects/drracket/private/local-member-names.rkt +++ b/collects/drracket/private/local-member-names.rkt @@ -11,9 +11,16 @@ insert-auto-text) ;; from module-language-tools.rkt -(define-local-member-name when-initialized #;move-to-new-language get-in-module-language?) +(define-local-member-name + when-initialized + ;move-to-new-language + get-in-module-language?) ;; for keybindings (otherwise private) (define-local-member-name jump-to-previous-error-loc jump-to-next-error-loc) + +;; defined in module-language.rkt +(define-local-member-name + set-lang-wants-big-defs/ints-labels?) diff --git a/collects/drracket/private/module-language-tools.rkt b/collects/drracket/private/module-language-tools.rkt index e507fb38b6..748c7e6b5f 100644 --- a/collects/drracket/private/module-language-tools.rkt +++ b/collects/drracket/private/module-language-tools.rkt @@ -94,8 +94,14 @@ (send defs move-to-new-language)))))) (define definitions-text-mixin - (mixin (text:basic<%> drracket:unit:definitions-text<%>) (drracket:module-language-tools:definitions-text<%>) - (inherit get-next-settings get-filename) + (mixin (text:basic<%> + drracket:unit:definitions-text<%> + drracket:module-language:big-defs/ints-label<%>) + (drracket:module-language-tools:definitions-text<%>) + (inherit get-next-settings + get-filename + set-lang-wants-big-defs/ints-labels? + get-tab) (define in-module-language? #f) ;; true when we are in the module language (define hash-lang-last-location #f) ;; non-false when we know where the hash-lang line ended (define hash-lang-language #f) ;; non-false is the string that was parsed for the language @@ -195,6 +201,11 @@ 'hash-lang-racket (get-lang-name pos)) 'drracket/private/module-language-tools)) + + (define lang-wants-big-defs/ints-labels? (and info-proc (info-proc 'drracket:show-big-defs/ints-labels #f))) + (set-lang-wants-big-defs/ints-labels? lang-wants-big-defs/ints-labels?) + (send (send (get-tab) get-ints) set-lang-wants-big-defs/ints-labels? lang-wants-big-defs/ints-labels?) + (when info-result (register-new-buttons (ctc-on-info-proc-result (or/c #f (listof (or/c (list/c string? @@ -209,8 +220,7 @@ (ctc-on-info-proc-result (or/c #f (listof symbol?)) (or (info-proc 'drracket:opt-out-toolbar-buttons '()) (info-proc 'drscheme:opt-out-toolbar-buttons '()))))))))) - - (inherit get-tab) + (define/private (register-new-buttons buttons opt-out-ids) ;; cleaned-up-buttons : (listof (list/c string? (is-a?/c bitmap%) (-> (is-a?/c drracket:unit:frame<%>) any) (or/c real? #f))) diff --git a/collects/drracket/private/module-language.rkt b/collects/drracket/private/module-language.rkt index 1698a032dd..104f53c054 100644 --- a/collects/drracket/private/module-language.rkt +++ b/collects/drracket/private/module-language.rkt @@ -1754,14 +1754,19 @@ (define defs/ints-font (send the-font-list find-or-create-font 72 'swiss 'normal 'normal)) + (define big-defs/ints-label<%> + (interface () + set-lang-wants-big-defs/ints-labels?)) + (define (mk-module-language-text-mixin id) - (mixin (editor<%>) () + (mixin (editor<%>) (big-defs/ints-label<%>) (inherit get-admin invalidate-bitmap-cache get-dc dc-location-to-editor-location) (define inside? #f) (define recently-typed? #f) (define fade-amount 1) - + (define lang-wants-big-defs/ints-labels? #f) + (define recently-typed-timer (new timer% [notify-callback @@ -1776,12 +1781,22 @@ (set! fade-amount 1)]) (invalidate-bitmap-cache 0 0 'display-end 'display-end)))])) + (define/public (set-lang-wants-big-defs/ints-labels? w?) + (unless (equal? lang-wants-big-defs/ints-labels? w?) + (set! lang-wants-big-defs/ints-labels? w?) + + (send recently-typed-timer stop) ;; reset the recently-typed timer so + (set! fade-amount 1) ;; that changing the language makes the + (set! recently-typed? #f) ;; labels appear immediately + + (invalidate-bitmap-cache 0 0 'display-end 'display-end))) + (define/override (on-char evt) (when inside? (update-recently-typed #t) (set! fade-amount 0) (send recently-typed-timer stop) - (send recently-typed-timer start 2000 #t)) + (send recently-typed-timer start 10000 #t)) (super on-char evt)) (define/private (update-recently-typed nv) @@ -1825,7 +1840,8 @@ (super on-paint before? dc left top right bottom dx dy draw-caret) (unless before? (when (and inside? - (not recently-typed?)) + (not recently-typed?) + lang-wants-big-defs/ints-labels?) (define admin (get-admin)) (when admin (send admin get-view bx by bw bh) @@ -1855,16 +1871,15 @@ (define (point-in-rectangle? x y l t r b) (and (<= l x r) (<= t y b))) - - + (define bx (box 0)) (define by (box 0)) (define bw (box 0)) (define bh (box 0)) - (define module-language-interactions-text-mixin + (define module-language-big-defs/ints-interactions-text-mixin (mk-module-language-text-mixin (string-constant interactions-window-label))) - (define module-language-definitions-text-mixin + (define module-language-big-defs/ints-definitions-text-mixin (mk-module-language-text-mixin (string-constant definitions-window-label))) (define module-language-compile-lock (make-compile-lock)) diff --git a/collects/htdp/bsl/reader.rkt b/collects/htdp/bsl/reader.rkt index 10ffd8517b..f838ec2362 100644 --- a/collects/htdp/bsl/reader.rkt +++ b/collects/htdp/bsl/reader.rkt @@ -35,6 +35,8 @@ ;; we don't want anything to confuse in the teaching languages. #f] + [(drracket:show-big-defs/ints-labels) #t] + [else (use-default key default)])) (define (make-language-info options)