some improvements to <menukey>-shift-o for opening files in drracket

This commit is contained in:
Robby Findler 2013-11-12 12:00:52 -06:00
parent ca1c97f00e
commit fe809a2f95

View File

@ -23,9 +23,15 @@
[else (super on-subwindow-char receiver event)])) [else (super on-subwindow-char receiver event)]))
(define/public (new-clcl/clcp clcl/clcp) (define/public (new-clcl/clcp clcl/clcp)
(update-list-of-paths)) (update-list-of-paths))
(define/override (on-size w h)
(preferences:set 'drracket:get-module-path-from-user-size (list w h)))
(super-new))) (super-new)))
(define dlg (new dlg% [label ""][width 600][height 600])) (define dlg (new dlg%
[style '(resize-border)]
[label (string-constant drracket)]
[width (car (preferences:get 'drracket:get-module-path-from-user-size))]
[height (cadr (preferences:get 'drracket:get-module-path-from-user-size))]))
(define tf (new text-field% [parent dlg] [label #f] (define tf (new text-field% [parent dlg] [label #f]
[init-value init-value] [init-value init-value]
[callback (λ (tf evt) (tf-callback))])) [callback (λ (tf evt) (tf-callback))]))
@ -70,6 +76,8 @@
(λ (_1 _2) (ok)) (λ (_1 _2) (ok))
(λ (_1 _2) (cancel)))) (λ (_1 _2) (cancel))))
(new grow-box-spacer-pane% [parent bp])
(define (tf-callback) (define (tf-callback)
(when pref-sym (when pref-sym
(preferences:set pref-sym (send tf get-value))) (preferences:set pref-sym (send tf get-value)))
@ -205,6 +213,7 @@
(update-different-racket-gui) (update-different-racket-gui)
(maybe-turn-racket-path-pink) (maybe-turn-racket-path-pink)
(send dlg show #t) (send dlg show #t)
(send tf focus)
(cond (cond
[cancelled? #f] [cancelled? #f]
[else (send lb get-data (get-item-to-act-on))])) [else (send lb get-data (get-item-to-act-on))]))
@ -239,7 +248,11 @@
(define new-clcl-thread-pending-chan (make-channel)) (define new-clcl-thread-pending-chan (make-channel))
(thread (thread
(λ () (λ ()
(define-values (a b) (alternate-racket-clcl/clcp (list-ref str+dlg 0))) (define-values (a b)
(if (path-string? (list-ref str+dlg 0))
(alternate-racket-clcl/clcp (list-ref str+dlg 0))
(values (current-library-collection-links)
(current-library-collection-paths))))
(channel-put new-clcl-thread-pending-chan (channel-put new-clcl-thread-pending-chan
(list (list a b) (list (list a b)
(list-ref str+dlg 1))))) (list-ref str+dlg 1)))))
@ -251,7 +264,7 @@
;; (cons/c string? (is-a?/c dialog%)) ;; (cons/c string? (is-a?/c dialog%))
[pending-str+dlg #f] [pending-str+dlg #f]
[clcl/clcp (if initial-alternate-racket [clcl/clcp (if (path-string? initial-alternate-racket)
(let-values ([(a b) (alternate-racket-clcl/clcp (let-values ([(a b) (alternate-racket-clcl/clcp
initial-alternate-racket)]) initial-alternate-racket)])
(list a b)) (list a b))
@ -298,3 +311,7 @@
#f #f
new-clcl/clcp)]))) new-clcl/clcp)])))
never-evt))))) never-evt)))))
(preferences:set-default 'drracket:get-module-path-from-user-size
(list 600 600)
(list/c exact-nonnegative-integer? exact-nonnegative-integer?))