added alt-1 thru alt-9 as keyboard shortcuts to switch between tabs
svn: r18196
This commit is contained in:
parent
de859a8879
commit
f7447ee6ae
|
@ -262,7 +262,18 @@ TODO
|
|||
[add-drs-function
|
||||
(λ (name f)
|
||||
(send drs-bindings-keymap add-function name
|
||||
(λ (obj evt) (cond [(get-frame obj) => f]))))])
|
||||
(λ (obj evt) (cond [(get-frame obj) => f]))))]
|
||||
[show-tab
|
||||
(λ (i)
|
||||
(λ (obj evt)
|
||||
(let ([fr (get-frame obj)])
|
||||
(and fr
|
||||
(is-a? fr drscheme:unit:frame<%>)
|
||||
(< i (send fr get-tab-count))
|
||||
(begin (send fr change-to-nth-tab i)
|
||||
#t)))))])
|
||||
(for ([i (in-range 1 10)])
|
||||
(send drs-bindings-keymap add-function (format "show-tab-~a" i) (show-tab (- i 1))))
|
||||
(send drs-bindings-keymap add-function "search-help-desk"
|
||||
(λ (obj evt)
|
||||
(if (not (and (is-a? obj text%) (get-frame obj))) ; is `get-frame' needed?
|
||||
|
@ -300,6 +311,14 @@ TODO
|
|||
|
||||
(send drs-bindings-keymap map-function "c:x;0" "collapse")
|
||||
(send drs-bindings-keymap map-function "c:x;2" "split")
|
||||
|
||||
(for ([i (in-range 1 10)])
|
||||
(send drs-bindings-keymap map-function
|
||||
(format "a:~a" i)
|
||||
(format "show-tab-~a" i))
|
||||
(send drs-bindings-keymap map-function
|
||||
(format "m:~a" i)
|
||||
(format "show-tab-~a" i)))
|
||||
|
||||
(define (get-drs-bindings-keymap) drs-bindings-keymap)
|
||||
|
||||
|
|
|
@ -2081,12 +2081,20 @@ module browser threading seems wrong.
|
|||
(send tabs-panel set-item-label (send tab get-i) label))))
|
||||
|
||||
(define/private (get-defs-tab-label defs tab)
|
||||
(let ([fn (send defs get-filename)])
|
||||
(add-modified-flag
|
||||
defs
|
||||
(if fn
|
||||
(get-tab-label-from-filename fn)
|
||||
(send defs get-filename/untitled-name)))))
|
||||
(let ([fn (send defs get-filename)]
|
||||
[i-prefix (or (for/or ([i (in-list tabs)]
|
||||
[n (in-naturals 1)]
|
||||
#:when (<= n 9))
|
||||
(and (eq? i tab)
|
||||
(format "~a: " n)))
|
||||
"")])
|
||||
(string-append
|
||||
i-prefix
|
||||
(add-modified-flag
|
||||
defs
|
||||
(if fn
|
||||
(get-tab-label-from-filename fn)
|
||||
(send defs get-filename/untitled-name))))))
|
||||
|
||||
(define/private (get-tab-label-from-filename fn)
|
||||
(let* ([take-n
|
||||
|
@ -2909,7 +2917,8 @@ module browser threading seems wrong.
|
|||
(define/public (open-in-new-tab filename)
|
||||
(create-new-tab filename))
|
||||
|
||||
(define/private (change-to-nth-tab n)
|
||||
(define/public (get-tab-count) (length tabs))
|
||||
(define/public (change-to-nth-tab n)
|
||||
(unless (< n (length tabs))
|
||||
(error 'change-to-nth-tab "number too big ~s" n))
|
||||
(change-to-tab (list-ref tabs n)))
|
||||
|
|
Loading…
Reference in New Issue
Block a user