diff --git a/collects/framework/editor.ss b/collects/framework/editor.ss index 91d1d773..8bb1f992 100644 --- a/collects/framework/editor.ss +++ b/collects/framework/editor.ss @@ -180,7 +180,7 @@ (let ([keymap (get-keymap)]) (keymap:set-keymap-error-handler keymap) (keymap:set-keymap-implied-shifts keymap) - (send keymap chain-to-keymap keymap:file #f))))) + (send keymap chain-to-keymap (keymap:get-file) #f))))) (define backup-autosave<%> (interface (basic<%>) diff --git a/collects/framework/frame.ss b/collects/framework/frame.ss index 95b87fb5..b072c973 100644 --- a/collects/framework/frame.ss +++ b/collects/framework/frame.ss @@ -33,17 +33,27 @@ make-root-area-container)) (define basic-mixin (mixin (frame<%>) (basic<%>) args + (rename [super-can-close? can-close?] + [super-on-close on-close] + [super-on-focus on-focus]) (override [can-close? (lambda () - (send group:the-frame-group - can-remove-frame? - this))] + (and (super-can-close?) + (send (group:get-the-frame-group) + can-remove-frame? + this)))] [on-close (lambda () - (send group:the-frame-group + (super-on-close) + (send (group:get-the-frame-group) remove-frame - this))]) + this))] + [on-focus + (lambda (on?) + (super-on-focus) + (when on? + (send (group:get-the-frame-group) set-active-frame this)))]) (public [get-area-container% (lambda () vertical-panel%)] [get-menu-bar% (lambda () menu-bar%)] @@ -95,7 +105,7 @@ [do-label (lambda () (super-set-label (get-entire-label)) - (send group:the-frame-group frame-label-changed this))]) + (send (group:get-the-frame-group) frame-label-changed this))]) (public [get-entire-label @@ -410,7 +420,7 @@ (set! replace-edit (make-object text%)) (for-each (lambda (keymap) (send keymap chain-to-keymap - keymap:search + (keymap:get-search) #t)) (list (send find-edit get-keymap) (send replace-edit get-keymap))))) diff --git a/collects/framework/group.ss b/collects/framework/group.ss index 2ae4c704..de649795 100644 --- a/collects/framework/group.ss +++ b/collects/framework/group.ss @@ -93,7 +93,7 @@ (set-close-menu-item-state! a-frame #t)) frames))))]) (public - [set-empty-callbacks + [set-empty-callbacks (lambda (test close-down) (set! empty-test test) (set! empty-close-down close-down))] @@ -197,4 +197,10 @@ frame (loop (cdr frames))))]))))]))) - (define the-frame-group (make-object %))) \ No newline at end of file + (define the-frame-group #f) + + (define get-the-frame-group + (lambda () + (set! the-frame-group (make-object %)) + (set! get-the-frame-group (lambda () the-frame-group)) + (get-the-frame-group)))) \ No newline at end of file diff --git a/collects/framework/guiutils.ss b/collects/framework/guiutils.ss index 7cf9f648..d6df1c1b 100644 --- a/collects/framework/guiutils.ss +++ b/collects/framework/guiutils.ss @@ -106,8 +106,7 @@ result))) (define get-choice - (opt-lambda (message true-choice false-choice - [title "Warning"][x -1][y -1]) + (opt-lambda (message true-choice false-choice [title "Warning"]) (let* ([result (void)] [choice-dialog% (class dialog% () @@ -122,7 +121,7 @@ (set! result #f) (show #f))]) (sequence - (super-init () title #t x y) + (super-init () title #t -1 -1) (let* ([messages (let loop ([m message]) (let ([match (regexp-match (format "([^~n]*)~n(.*)") diff --git a/collects/framework/handler.ss b/collects/framework/handler.ss index 8fa801ac..8000f965 100644 --- a/collects/framework/handler.ss +++ b/collects/framework/handler.ss @@ -82,22 +82,18 @@ (lambda (name) (find-named-handler name format-handlers))) - (define edit-file-consult-group (make-parameter #t)) - ; Open a file for editing (define edit-file (opt-lambda (filename [make-default - (lambda (filename) - (make-object frame:text-info-file% filename))] - [consult-group? (edit-file-consult-group)]) + (lambda () + (make-object frame:text-info-file% filename))]) (gui-utils:show-busy-cursor (lambda () (if filename - (let ([already-open (and consult-group? - (send group:the-frame-group - locate-file - filename))]) + (let ([already-open (send (group:get-the-frame-group) + locate-file + filename)]) (if already-open (begin (send already-open show #t) @@ -108,8 +104,8 @@ #f)]) (if handler (handler filename) - (make-default filename))))) - (make-default filename)))))) + (make-default))))) + (make-default)))))) ; Query the user for a file and then edit it diff --git a/collects/framework/icon.ss b/collects/framework/icon.ss index 43f06c3a..3887c87e 100644 --- a/collects/framework/icon.ss +++ b/collects/framework/icon.ss @@ -47,7 +47,6 @@ (define get-autowrap-bitmap (load-icon bitmap% "return.xbm" 'xbm)) (define get-paren-highlight-bitmap (load-icon bitmap% "paren.xbm" 'xbm)) - (define get-reset-console-bitmap (load-icon bitmap% "reset.xbm" 'xbm)) (define get (let ([icon #f] @@ -60,25 +59,21 @@ (set! icon (make-object bitmap% p 'xbm)) icon))))) - (define-values (get-gc-on-dc get-gc-width get-gc-height) - (let* ([get-bitmap (load-icon bitmap% - "recycle.gif" - 'gif)] - [bitmap #f] - [bdc #f] - [fetch - (lambda () - (unless bdc - (set! bdc (make-object bitmap-dc%)) - (set! bitmap (get-bitmap)) - (send bdc select-object bitmap)))]) - (values (lambda () (fetch) bdc) - (lambda () (fetch) (if (send bitmap ok?) - (send bitmap get-width) + (define gc-on-bitmap #f) + (define gc-on-bdc #f) + (define (fetch) + (unless gc-on-bdc + (set! gc-on-bdc (make-object bitmap-dc%)) + (set! gc-on-bitmap ((load-icon bitmap% "recycle.gif" 'gif))) + (send gc-on-bdc select-object gc-on-bitmap))) + + (define (get-gc-on-dc) (fetch) gc-on-bdc) + (define (get-gc-width) (fetch) (if (send gc-on-bitmap ok?) + (send gc-on-bitmap get-width) 10)) - (lambda () (fetch) (if (send bitmap ok?) - (send bitmap get-height) - 10))))) + (define (get-gc-height) (fetch) (if (send gc-on-bitmap ok?) + (send gc-on-bitmap get-height) + 10)) (define get-gc-off-dc (let ([bdc #f]) diff --git a/collects/framework/keys.ss b/collects/framework/keys.ss index 6e37361d..2a14d6e7 100644 --- a/collects/framework/keys.ss +++ b/collects/framework/keys.ss @@ -6,6 +6,8 @@ [scheme-paren : framework:scheme-paren^] [frame : framework:frame^]) + (rename [-get-file get-file]) + ; This is a list of keys that are typed with the SHIFT key, but ; are not normally thought of as shifted. It will have to be ; changed for different keyboards. @@ -862,9 +864,12 @@ (define global (make-object keymap%)) (setup-global global) + (define (get-global) global) (define file (make-object keymap%)) (setup-file file) + (define (-get-file) file) (define search (make-object keymap%)) - (setup-search search)) + (setup-search search) + (define (get-search) search)) diff --git a/collects/framework/main.ss b/collects/framework/main.ss index 55a94ec7..cce1756a 100644 --- a/collects/framework/main.ss +++ b/collects/framework/main.ss @@ -180,7 +180,7 @@ (semaphore-post s)))))))) (let ([at-most-one (at-most-one-maker)]) - (send group:the-frame-group set-empty-callbacks + (send (group:get-the-frame-group) set-empty-callbacks (lambda () (at-most-one (void) (lambda () (exit:exit #t)))) @@ -194,7 +194,7 @@ (at-most-one #t (lambda () - (send group:the-frame-group close-all)))))) + (send (group:get-the-frame-group) close-all)))))) ;; misc other stuff diff --git a/collects/framework/sig.ss b/collects/framework/sig.ss index eef06c33..80a39266 100644 --- a/collects/framework/sig.ss +++ b/collects/framework/sig.ss @@ -163,7 +163,7 @@ (define-signature framework:group^ (% - the-frame-group)) + get-the-frame-group)) (define-signature framework:handler^ (handler? handler-name handler-extension handler-handler @@ -179,7 +179,6 @@ get-paren-highlight-bitmap get-autowrap-bitmap - get-reset-console-bitmap get-lock-bitmap get-lock-bdc @@ -194,21 +193,18 @@ get-gc-height)) (define-signature framework:keymap^ - (shifted-key-list - - keyerr - set-keymap-error-handler + (set-keymap-error-handler set-keymap-implied-shifts - make-meta-prefix-list send-map-function-meta + make-meta-prefix-list setup-global setup-search setup-file - global - search - file)) + get-global + get-search + get-file)) (define-signature framework:match-cache^ (%)) diff --git a/collects/framework/text.ss b/collects/framework/text.ss index 9b98cd17..a02dfa5f 100644 --- a/collects/framework/text.ss +++ b/collects/framework/text.ss @@ -310,7 +310,7 @@ (let ([keymap (get-keymap)]) (keymap:set-keymap-error-handler keymap) (keymap:set-keymap-implied-shifts keymap) - (send keymap chain-to-keymap keymap:global #f))))) + (send keymap chain-to-keymap (keymap:get-global) #f))))) (define file<%> (interface (basic<%>))) @@ -405,7 +405,7 @@ (let ([keymap (get-keymap)]) (keymap:set-keymap-error-handler keymap) (keymap:set-keymap-implied-shifts keymap) - (send keymap chain-to-keymap keymap:search #f))))) + (send keymap chain-to-keymap (keymap:get-search) #f))))) (define return-mixin (mixin (text<%>) (text<%>) (return . args)