diff --git a/collects/framework/canvas.ss b/collects/framework/canvas.ss index b6c94a61..ba9154f0 100644 --- a/collects/framework/canvas.ss +++ b/collects/framework/canvas.ss @@ -1,4 +1,4 @@ -(unit/sig mred:canvas^ +(unit/sig framework:canvas^ (import mred^ [preferences : framework:preferences^]) diff --git a/collects/framework/finder.ss b/collects/framework/finder.ss index a0c12511..51d57325 100644 --- a/collects/framework/finder.ss +++ b/collects/framework/finder.ss @@ -2,7 +2,7 @@ ;;; Authors: Matthew Flatt, Robby Findler, Paul Steckler -(unit/sig mred:finder^ +(unit/sig framework:finder^ (import mred^ [preferences : framework:preferences^] [gui-utils : framework:gui-utils^] @@ -158,18 +158,10 @@ (if (< which (length dirs)) (set-directory (list-ref dirs which)))))] - [do-name - (lambda (text event) - (if (eq? (send event get-event-type) - wx:const-event-type-text-enter-command) - (do-ok)))] - [do-name-list - (lambda (_ event) - (if (and (eq? (send event get-event-type) - wx:const-event-type-listbox-command) - (send event is-selection?)) - (set-edit)))] + (lambda (list-box _) + (when (send list-box get-string-selections) + (set-edit)))] [do-result-list (lambda args #f)] @@ -251,25 +243,25 @@ (if (or (not save-mode?) (not (file-exists? file)) replace-ok? - (= (wx:message-box - (string-append - "The file " - file - " already exists. " - "Replace it?") - "Warning" - wx:const-yes-no) - wx:const-yes)) + (eq? (message-box "Warning" + (string-append + "The file " + file + " already exists. " + "Replace it?") + #f + 'yes-no) + 'yes)) (let ([normal-path (with-handlers ([(lambda (_) #t) (lambda (_) - (wx:message-box + (message-box + "Warning" (string-append "The file " file - " contains nonexistent directory or cycle.") - "Warning") + " contains nonexistent directory or cycle.")) #f)]) (mzlib:file:normalize-path file))]) (when normal-path diff --git a/collects/framework/group.ss b/collects/framework/group.ss index 290d8689..a4240224 100644 --- a/collects/framework/group.ss +++ b/collects/framework/group.ss @@ -1,4 +1,4 @@ -(unit/sig mred:group^ +(unit/sig framework:group^ (import mred^ [exit : framework:exit^] [mzlib:function : mzlib:function^] diff --git a/collects/framework/guiutils.ss b/collects/framework/guiutils.ss index 79f8d80a..00072b96 100644 --- a/collects/framework/guiutils.ss +++ b/collects/framework/guiutils.ss @@ -32,7 +32,7 @@ (semaphore-post semaphore))))) (define local-busy-cursor - (let ([watch (make-object wx:cursor% wx:const-cursor-watch)]) + (let ([watch (make-object cursor% 'watch)]) (opt-lambda (win thunk [delay (cursor-delay)]) (let* ([old-cursor #f] [cursor-off void]) @@ -44,11 +44,11 @@ (lambda () (if win (set! old-cursor (send win set-cursor watch)) - (wx:begin-busy-cursor))) + (begin-busy-cursor))) (lambda () (if win (send win set-cursor old-cursor) - (wx:end-busy-cursor)))))) + (end-busy-cursor)))))) (lambda () (thunk)) (lambda () (cursor-off))))))) @@ -57,7 +57,7 @@ (let* ([result (void)] [dialog% (class dialog-box% () - (inherit show new-line fit tab center set-size) + (inherit show center) (private [on-dont-save (lambda args @@ -97,45 +97,21 @@ (if (not can-save-now?) (begin (send cancel set-focus) (send now show #f)) - (send now set-focus))) - (send msg center wx:const-horizontal)) + (send now set-focus)))) - (set-size -1 -1 10 10) - (center wx:const-both) + (center 'both) (show #t)))]) (make-object dialog%) result))) - (define read-snips/chars-from-buffer - (opt-lambda (edit [start 0] [end (send edit last-position)]) - (let ([pos start] - [box (box 0)]) - (lambda () - (let* ([snip (send edit find-snip pos - wx:const-snip-after-or-null box)] - [ans - (cond - [(<= end pos) eof] - [(null? snip) eof] - [(is-a? snip wx:text-snip%) - (let ([t (send snip get-text (- pos (unbox box)) 1)]) - (unless (= (string-length t) 1) - (error 'read-snips/chars-from-buffer - "unexpected string, t: ~s; pos: ~a box: ~a" - t pos box)) - (string-ref t 0))] - [else snip])]) - (set! pos (add1 pos)) - ans))))) - (define get-choice (opt-lambda (message true-choice false-choice [title "Warning"][x -1][y -1]) (let* ([result (void)] [dialog% - (class wx:dialog-box% () - (inherit show new-line fit tab center) + (class dialog-box% () + (inherit show center) (private [on-true (lambda args @@ -158,28 +134,39 @@ [msgs (map (lambda (message) (begin0 - (make-object wx:message% this message) - (new-line))) + (make-object message% this message))) messages)]) - (send (make-object wx:button% this - on-true true-choice) - set-focus) - (tab 50) - (make-object wx:button% this on-false false-choice) - (fit) + (send (make-object button% true-choice this on-true) focus) + (make-object button% false-choice this on-false) - (if (and (< x 0) (< y 0)) - (map (lambda (msg) - (send msg center wx:const-horizontal)) - msgs))) + (center 'both) - (center wx:const-both) - - (show #t)))]) + (show #t))))]) (make-object dialog%) result))) + (define read-snips/chars-from-buffer + (opt-lambda (edit [start 0] [end (send edit last-position)]) + (let ([pos start] + [box (box 0)]) + (lambda () + (let* ([snip (send edit find-snip pos 'after-or-none box)] + [ans + (cond + [(<= end pos) eof] + [(not snip) eof] + [(is-a? snip text-snip%) + (let ([t (send snip get-text (- pos (unbox box)) 1)]) + (unless (= (string-length t) 1) + (error 'read-snips/chars-from-buffer + "unexpected string, t: ~s; pos: ~a box: ~a" + t pos box)) + (string-ref t 0))] + [else snip])]) + (set! pos (add1 pos)) + ans))))) + (define open-input-buffer (lambda (buffer) (let ([pos 0]) @@ -194,12 +181,4 @@ (lambda () #t) (lambda () - (void)))))) - - ; For use with wx:set-print-paper-name - (define print-paper-names - (list - "A4 210 x 297 mm" - "A3 297 x 420 mm" - "Letter 8 1/2 x 11 in" - "Legal 8 1/2 x 14 in"))) + (void))))))) diff --git a/collects/framework/main.ss b/collects/framework/main.ss index f564d72e..dbd74558 100644 --- a/collects/framework/main.ss +++ b/collects/framework/main.ss @@ -4,18 +4,14 @@ ;; preferences - (mred:preferences:set-preference-default 'mred:verify-change-format #f boolean?) + (preferences:set-default 'framework:verify-change-format #f boolean?) - (mred:preferences:set-preference-default 'mred:auto-set-wrap? #f boolean?) + (preferences:set-default 'framework:auto-set-wrap? #f boolean?) (preferences:set-default 'framework:display-line-numbers #t boolean?) - (preferences:set-preference-default 'mred:show-status-line - #t - boolean?) - (preferences:set-preference-default 'mred:line-offsets - #t - boolean?) + (preferences:set-default 'framework:show-status-line #t boolean?) + (preferences:set-default 'framework:line-offsets t boolean?) @@ -44,7 +40,7 @@ share share-from sequence)) (for-each (lambda (x) (hash-table-put! hash-table x 'lambda)) - '(lambda let let* letrec letrec* recur + '(lambda let let* letrec recur let/cc let/ec letcc catch let-syntax letrec-syntax syntax-case let-signature fluid-let @@ -61,13 +57,13 @@ call-with-input-file with-input-from-file with-input-from-port call-with-output-file with-output-to-file with-output-to-port)) - (mred:preferences:set-preference-un/marshall - 'mred:tabify + (preferences:set-un/marshall + 'framework:tabify (lambda (t) (hash-table-map t list)) (lambda (l) (let ([h (make-hash-table)]) (for-each (lambda (x) (apply hash-table-put! h x)) l) h))) - (mred:preferences:set-preference-default 'mred:tabify hash-table hash-table?)) + (preferences:set-default 'framework:tabify hash-table hash-table?)) (preferences:set-default 'framework:autosave-delay 300 number?) @@ -78,7 +74,7 @@ boolean?) (preferences:set 'framework:show-periods-in-dirlist #f boolean?) (preferences:set 'framework:file-dialogs - (if (eq? wx:platform 'unix) + (if (eq? (system-type) 'unix) 'common 'std) (lambda (x) @@ -91,22 +87,22 @@ (let*-values ([(get-keywords) (lambda (hash-table) - (letrec* ([all-keywords (hash-table-map hash-table list)] - [pick-out (lambda (wanted in out) - (cond - [(null? in) (mzlib:function:quicksort out string<=?)] - [else (if (eq? wanted (cadr (car in))) - (pick-out wanted (cdr in) (cons (symbol->string (car (car in))) out)) - (pick-out wanted (cdr in) out))]))]) + (letrec ([all-keywords (hash-table-map hash-table list)] + [pick-out (lambda (wanted in out) + (cond + [(null? in) (mzlib:function:quicksort out string<=?)] + [else (if (eq? wanted (cadr (car in))) + (pick-out wanted (cdr in) (cons (symbol->string (car (car in))) out)) + (pick-out wanted (cdr in) out))]))]) (values (pick-out 'begin all-keywords null) (pick-out 'define all-keywords null) (pick-out 'lambda all-keywords null))))] [(begin-keywords define-keywords lambda-keywords) - (get-keywords (mred:preferences:get-preference 'mred:tabify))]) + (get-keywords (preferences:get 'framework:tabify))]) (let* ([add-callback (lambda (keyword-type keyword-symbol list-box) (lambda (button command) - (let ([new-one (mred:gui-utils:get-text-from-user + (let ([new-one (get-text-from-user (string-append "Enter new " keyword-type "-like keyword:") (string-append keyword-type " Keyword"))]) (when new-one @@ -114,33 +110,33 @@ (read (open-input-string new-one)))]) (cond [(and (symbol? parsed) - (hash-table-get (mred:preferences:get-preference 'mred:tabify) + (hash-table-get (preferences:get 'framework:tabify) parsed (lambda () #f))) - (wx:message-box (format "\"~a\" is already a specially indented keyword" parsed) - "Error")] + (message-box "Error" + (format "\"~a\" is already a specially indented keyword" parsed))] [(symbol? parsed) - (hash-table-put! (mred:preferences:get-preference 'mred:tabify) + (hash-table-put! (preferences:get 'framework:tabify) parsed keyword-symbol) (send list-box append (symbol->string parsed))] - [else (wx:message-box (format "expected a symbol, found: ~a" new-one) "Error")]))))))] + [else (message-box "Error" (format "expected a symbol, found: ~a" new-one))]))))))] [delete-callback (lambda (list-box) (lambda (button command) (let* ([selections (send list-box get-selections)] [symbols (map (lambda (x) (string->symbol (send list-box get-string x))) selections)]) (for-each (lambda (x) (send list-box delete x)) (reverse selections)) - (let ([ht (mred:preferences:get-preference 'mred:tabify)]) + (let ([ht (preferences:get 'framework:tabify)]) (for-each (lambda (x) (hash-table-remove! ht x)) symbols)))))] - [main-panel (make-object mred:horizontal-panel% p)] + [main-panel (make-object horizontal-panel% p)] [make-column (lambda (string symbol keywords) - (let* ([vert (make-object mred:vertical-panel% main-panel)] - [_ (make-object mred:message% vert (string-append string "-like Keywords"))] - [box (make-object mred:list-box% vert null "" wx:const-multiple -1 -1 -1 -1 keywords)] - [button-panel (make-object mred:horizontal-panel% vert)] - [add-button (make-object mred:button% button-panel (add-callback string symbol box) "Add")] - [delete-button (make-object mred:button% button-panel (delete-callback box) "Remove")]) + (let* ([vert (make-object vertical-panel% main-panel)] + [_ (make-object message% (string-append string "-like Keywords") vert)] + [box (make-object list-box% #f keywords vert #f 'multiple void)] + [button-panel (make-object horizontal-panel% vert)] + [add-button (make-object button% "Add" (add-callback string symbol box) button-panel)] + [delete-button (make-object button% "Remove" (delete-callback box) button-panel)]) (send* button-panel (major-align-center) (stretchable-in-y #f)) @@ -159,7 +155,7 @@ (reset define-list-box define-keywords) (reset lambda-list-box lambda-keywords) #t))]) - (mred:preferences:add-preference-callback 'mred:tabify (lambda (p v) (update-list-boxes v))) + (preferences:add-callback 'framework:tabify (lambda (p v) (update-list-boxes v))) main-panel)))) (preferences:read) @@ -208,10 +204,11 @@ (lambda () (with-handlers ([(lambda (x) #t) (lambda (exn) - (mred:gui-utils:message-box + (message-box + "Saving Prefs" (format "Error saving preferences: ~a" - (exn-message exn)) - "Saving Prefs"))]) + (exn-message exn))))]) (save-user-preferences)))) - (wx:application-file-handler edit-file)) + ;(wx:application-file-handler edit-file) + ) diff --git a/collects/framework/prefs.ss b/collects/framework/prefs.ss index 125ab260..13471fe6 100644 --- a/collects/framework/prefs.ss +++ b/collects/framework/prefs.ss @@ -138,13 +138,13 @@ (lambda () (hash-table-for-each defaults - (lambda (p v) (set-preference p v))))) + (lambda (p v) (set p v))))) (define set-default (lambda (p value checker) (let ([t (checker value)]) (unless t - (error 'set-preference-default "~s: checker (~s) returns ~s for ~s, expected #t~n" p checker t value))) + (error 'set-default "~s: checker (~s) returns ~s for ~s, expected #t~n" p checker t value))) (hash-table-get preferences p (lambda () (hash-table-put! preferences p (make-pref value)))) @@ -195,17 +195,17 @@ [unmarshall-struct (hash-table-get marshall-unmarshall p (lambda () #f))]) (cond [(and (pref? ht-pref) unmarshall-struct) - (set-preference p ((un/marshall-unmarshall unmarshall-struct) marshalled))] + (set p ((un/marshall-unmarshall unmarshall-struct) marshalled))] ;; in this case, assume that no marshalling/unmarshalling ;; is going to take place with the pref, since an unmarshalled ;; pref was already there. [(pref? ht-pref) - (set-preference p marshalled)] + (set p marshalled)] [(marshalled? ht-pref) (set-marshalled-data! ht-pref marshalled)] [(and (not ht-pref) unmarshall-struct) - (set-preference p ((un/marshall-unmarshall unmarshall-struct) marshalled))] + (set p ((un/marshall-unmarshall unmarshall-struct) marshalled))] [(not ht-pref) (hash-table-put! preferences p (make-marshalled marshalled))] [else (error 'prefs.ss "robby error.3: ~a" ht-pref)]))))]) @@ -215,7 +215,7 @@ (let ([err (lambda (input msg) (message-box "Preferences" - (let* ([max-len 150] + (let* ([max-len 150] [s1 (format "~s" input)] [ell "..."] [s2 (if (<= (string-length s1) max-len) @@ -284,13 +284,13 @@ (lambda (family) (let ([name (build-font-preference-symbol family)] [font-entry (build-font-entry family)]) - (set-preference-default name - default - (cond - [(string? default) string?] - [(number? default) number?] - [else (error 'internal-error.set-default "unrecognized default: ~a~n" default)])) - (add-preference-callback + (set-default name + default + (cond + [(string? default) string?] + [(number? default) number?] + [else (error 'internal-error.set-default "unrecognized default: ~a~n" default)])) + (add-callback name (lambda (p new-value) (write-resource @@ -335,14 +335,14 @@ (lambda (pref title bool->pref pref->bool) (let* ([callback (lambda (_ command) - (set-preference pref (bool->pref (send command checked?))))] - [pref-value (get-preference pref)] + (set pref (bool->pref (send command checked?))))] + [pref-value (get pref)] [initial-value (pref->bool pref-value)] [c (make-object check-box% main callback title)]) (send c set-value initial-value) - (add-preference-callback pref - (lambda (p v) - (send c set-value (pref->bool v))))))] + (add-callback pref + (lambda (p v) + (send c set-value (pref->bool v))))))] [id (lambda (x) x)]) (send main minor-align-left) (make-check 'framework:highlight-parens "Highlight between matching parens" id id) @@ -374,113 +374,109 @@ (make-ppanel "Default Fonts" (lambda (parent) - (letrec* ([font-size-pref-sym (build-font-preference-symbol font-size-entry)] - [ex-string "The quick brown fox jumped over the lazy dogs."] - [main (make-object vertical-panel% parent)] - [fonts (cons font-default-string (wx:get-font-list))] - [make-family-panel - (lambda (name) - (let* ([pref-sym (build-font-preference-symbol name)] - [family-const-pair (assoc name font-families-name/const)] - - [edit (make-object edit%)] - [_ (send edit insert ex-string)] - [set-edit-font - (lambda (size) - (let ([delta (make-object style-delta% 'change-size size)] - [face (get-preference pref-sym)]) - (if (and (string=? face font-default-string) - family-const-pair) - (send delta set-family (cadr family-const-pair)) - (send delta set-delta-face (get-preference pref-sym))) - - (send edit change-style delta 0 (send edit last-position))))] - - [horiz (make-object horizontal-panel% main '(border))] - [label (make-object message% horiz name)] - - [message (make-object message% horiz - (let ([b (box "")]) - (if (and (get-resource - font-section - (build-font-entry name) - b) - (not (string=? (unbox b) - ""))) - (unbox b) - font-default-string)))] - [button - (make-object - button% horiz - (lambda (button evt) - (let ([new-value - (mred:gui-utils:get-single-choice - (format "Please choose a new ~a font" - name) - "Fonts" - fonts - null -1 -1 #t 300 400)]) - (when new-value - (set-preference pref-sym - new-value) - (set-edit-font (get-preference font-size-pref-sym))))) - "Change")] - ;; WARNING!!! CHECK INIT ARGS wx: - [canvas (make-object editor-canvas% horiz "" - (list 'hide-hscroll - 'hide-vscroll))]) - (set-edit-font (get-preference font-size-pref-sym)) - (send canvas set-media edit) - (add-preference-callback - pref-sym - (lambda (p new-value) - (send horiz change-children - (lambda (l) - (let ([new-message (make-object - message% + (letrec ([font-size-pref-sym (build-font-preference-symbol font-size-entry)] + [ex-string "The quick brown fox jumped over the lazy dogs."] + [main (make-object vertical-panel% parent)] + [fonts (cons font-default-string (get-face-list))] + [make-family-panel + (lambda (name) + (let* ([pref-sym (build-font-preference-symbol name)] + [family-const-pair (assoc name font-families-name/const)] + + [edit (make-object edit%)] + [_ (send edit insert ex-string)] + [set-edit-font + (lambda (size) + (let ([delta (make-object style-delta% 'change-size size)] + [face (get pref-sym)]) + (if (and (string=? face font-default-string) + family-const-pair) + (send delta set-family (cadr family-const-pair)) + (send delta set-delta-face (get pref-sym))) + + (send edit change-style delta 0 (send edit last-position))))] + + [horiz (make-object horizontal-panel% main '(border))] + [label (make-object message% horiz name)] + + [message (make-object message% horiz + (let ([b (box "")]) + (if (and (get-resource + font-section + (build-font-entry name) + b) + (not (string=? (unbox b) + ""))) + (unbox b) + font-default-string)))] + [button + (make-object + button% horiz + (lambda (button evt) + (let ([new-value + (get-choice-from-user + "Fonts" + (format "Please choose a new ~a font" + name) + fonts)]) + (when new-value + (set pref-sym new-value) + (set-edit-font (get font-size-pref-sym))))) + "Change")] + [canvas (make-object editor-canvas% horiz + edit + (list 'hide-hscroll + 'hide-vscroll))]) + (set-edit-font (get font-size-pref-sym)) + (add-callback + pref-sym + (lambda (p new-value) + (send horiz change-children + (lambda (l) + (let ([new-message (make-object + message% horiz new-value)]) - (set! message new-message) - (update-message-sizes font-message-get-widths - font-message-user-min-sizes) - (list label - new-message - button - canvas)))))) - (vector set-edit-font - (lambda () (send message get-width)) - (lambda (width) (send message user-min-width width)) - (lambda () (send label get-width)) - (lambda (width) (send label user-min-width width)))))] - [set-edit-fonts/messages (map make-family-panel font-families)] - [collect (lambda (n) (map (lambda (x) (vector-ref x n)) set-edit-fonts/messages))] - [set-edit-fonts (collect 0)] - [font-message-get-widths (collect 1)] - [font-message-user-min-sizes (collect 2)] - [category-message-get-widths (collect 3)] - [category-message-user-min-sizes (collect 4)] - [update-message-sizes - (lambda (gets sets) - (let ([width (mzlib:function:foldl (lambda (x l) (max l (x))) 0 gets)]) - (for-each (lambda (set) (set width)) sets)))] - [size-panel (make-object horizontal-panel% main '(border))] - [size-slider - (make-object slider% size-panel - (lambda (slider evt) - (set-preference font-size-pref-sym - (send slider get-value))) - "Size" - (let ([b (box 0)]) - (if (get-resource font-section - font-size-entry - b) - (unbox b) - font-default-size)) - 1 127 50)] - [guard-change-font (later-on)]) + (set! message new-message) + (update-message-sizes font-message-get-widths + font-message-user-min-sizes) + (list label + new-message + button + canvas)))))) + (vector set-edit-font + (lambda () (send message get-width)) + (lambda (width) (send message user-min-width width)) + (lambda () (send label get-width)) + (lambda (width) (send label user-min-width width)))))] + [set-edit-fonts/messages (map make-family-panel font-families)] + [collect (lambda (n) (map (lambda (x) (vector-ref x n)) set-edit-fonts/messages))] + [set-edit-fonts (collect 0)] + [font-message-get-widths (collect 1)] + [font-message-user-min-sizes (collect 2)] + [category-message-get-widths (collect 3)] + [category-message-user-min-sizes (collect 4)] + [update-message-sizes + (lambda (gets sets) + (let ([width (mzlib:function:foldl (lambda (x l) (max l (x))) 0 gets)]) + (for-each (lambda (set) (set width)) sets)))] + [size-panel (make-object horizontal-panel% main '(border))] + [size-slider + (make-object slider% size-panel + (lambda (slider evt) + (set font-size-pref-sym (send slider get-value))) + "Size" + (let ([b (box 0)]) + (if (get-resource font-section + font-size-entry + b) + (unbox b) + font-default-size)) + 1 127 50)] + [guard-change-font (later-on)]) (update-message-sizes font-message-get-widths font-message-user-min-sizes) (update-message-sizes category-message-get-widths category-message-user-min-sizes) - (add-preference-callback + (add-callback font-size-pref-sym (lambda (p value) (guard-change-font @@ -533,7 +529,7 @@ (lambda () (run-once (lambda () - (save-user-preferences) + (save) (if preferences-dialog (send preferences-dialog show #t) (set! preferences-dialog @@ -588,12 +584,12 @@ single-panel bottom-panel)))))] [ok-callback (lambda args - (save-user-preferences) - (hide-preferences-dialog))] + (save) + (hide-dialog))] [ok-button (make-object button% bottom-panel ok-callback "OK")] [cancel-callback (lambda args - (hide-preferences-dialog) - (read-user-preferences))] + (hide-dialog) + (read))] [cancel-button (make-object button% bottom-panel cancel-callback "Cancel")]) (send ok-button user-min-width (send cancel-button get-width)) (send* bottom-panel diff --git a/collects/framework/scheme.ss b/collects/framework/scheme.ss index 057f01fc..06ac3de6 100644 --- a/collects/framework/scheme.ss +++ b/collects/framework/scheme.ss @@ -312,22 +312,22 @@ [balance-parens (let-struct string/pos (string pos) (lambda (key) - (letrec* ([char (integer->char code)] - [here (get-start-position)] - [limit (get-limit here)] - [paren-match? (preferences:get 'framework:paren-match)] - [fixup-parens? (preferences:get 'framework:fixup-parens)] - [find-match - (lambda (pos) - (let loop ([parens scheme-paren:scheme-paren-pairs]) - (cond - [(null? parens) #f] - [else (let* ([paren (car parens)] - [left (car paren)] - [right (cdr paren)]) - (if (string=? left (get-text pos (+ pos (string-length left)))) - right - (loop (cdr parens))))])))]) + (letrec ([char (integer->char code)] + [here (get-start-position)] + [limit (get-limit here)] + [paren-match? (preferences:get 'framework:paren-match)] + [fixup-parens? (preferences:get 'framework:fixup-parens)] + [find-match + (lambda (pos) + (let loop ([parens scheme-paren:scheme-paren-pairs]) + (cond + [(null? parens) #f] + [else (let* ([paren (car parens)] + [left (car paren)] + [right (cdr paren)]) + (if (string=? left (get-text pos (+ pos (string-length left)))) + right + (loop (cdr parens))))])))]) (cond [(in-single-line-comment? here) (insert char)] diff --git a/collects/framework/sig.ss b/collects/framework/sig.ss index bbd1711a..1e6c35d8 100644 --- a/collects/framework/sig.ss +++ b/collects/framework/sig.ss @@ -256,18 +256,7 @@ (define-signature framework:match-cache^ (%)) -(define-signature mred:menu^ - (max-manual-menu-id - generate-menu-id - make-menu% - menu% - make-menu-bar% - menu-bar%)) -(define-signature mred:project^ - (project-frame-group% - make-project-frame% - project-frame%)) (define-signature framework:scheme-paren^ (paren-pairs @@ -294,7 +283,7 @@ backward-match skip-whitespace)) -(define-signature mred^ +(define-signature framework^ ([unit application : framework:application^] [unit version : framework:version^] [unit exn : framework:exn^] diff --git a/collects/mred/panel.ss b/collects/mred/panel.ss deleted file mode 100644 index ec2e74f6..00000000 --- a/collects/mred/panel.ss +++ /dev/null @@ -1,86 +0,0 @@ - - (unit/sig mred:panel^ - (import [wx : wx^] - [mred:constants : mred:constants^] - [mred:container : mred:container^] - [mred:canvas : mred:canvas^] - mzlib:function^) - - (mred:debug:printf 'invoke "mred:panel@") - - (define make-edit-panel% - (lambda (super%) - (class-asi super% - (rename [super-change-children change-children]) - (inherit get-parent change-children children) - (public [get-canvas% (lambda () mred:canvas:frame-title-canvas%)]) - (private - [split-edits null]) - (public - [collapse - (lambda (canvas) - (let ([media (send canvas get-media)]) - (if (memq media split-edits) - (letrec ([helper - (lambda (canvas/panel) - (if (eq? canvas/panel this) - (begin (cond - [(and (= (length children) 1) - (eq? canvas (car children))) - (void)] - [(member canvas children) - (change-children (lambda (l) (list canvas)))] - [else - (change-children - (lambda (l) - (let ([c (make-object (object-class canvas) this)]) - (send c set-media media) - (list c))))]) - (wx:bell)) - (let* ([parent (send canvas/panel get-parent)] - [parents-children (ivar parent children)] - [num-children (length parents-children)]) - (if (<= num-children 1) - (helper parent) - (begin (send parent delete-child canvas/panel) - (send (car (ivar parent children)) set-focus))))))]) - (send media remove-canvas canvas) - (helper canvas)) - (wx:bell))))] - [split - (opt-lambda (canvas [panel% mred:container:horizontal-panel%]) - (let* ([frame (ivar canvas frame)] - [media (send canvas get-media)] - [canvas% (object-class canvas)] - [parent (send canvas get-parent)] - [new-panel #f] - [left-split #f] - [right-split #f] - [before #t]) - (set! split-edits (cons media split-edits)) - (dynamic-wind - (lambda () - (set! before (send frame delay-updates)) - (send frame delay-updates #t)) - (lambda () - (set! new-panel (make-object panel% parent)) - (set! left-split (make-object canvas% new-panel)) - (set! right-split (make-object canvas% new-panel)) - (send parent change-children - (lambda (l) - (let ([before (remq new-panel l)]) - (map (lambda (x) (if (eq? x canvas) - new-panel - x)) - before))))) - (lambda () (send frame delay-updates before))) - (send* media (remove-canvas canvas) - (add-canvas left-split) - (add-canvas right-split)) - (send* left-split (set-media media) (set-focus)) - (send* right-split (set-media media))))])))) - - (define horizontal-edit-panel% - (make-edit-panel% mred:container:horizontal-panel%)) - (define vertical-edit-panel% - (make-edit-panel% mred:container:vertical-panel%))) \ No newline at end of file