improved tab navigation keybindings
svn: r12189
This commit is contained in:
parent
968e69bd00
commit
92dcfca644
|
@ -477,6 +477,39 @@
|
||||||
"text:ports out"
|
"text:ports out"
|
||||||
(string-constant repl-out-color))))
|
(string-constant repl-out-color))))
|
||||||
|
|
||||||
|
(let* ([find-frame
|
||||||
|
(λ (item)
|
||||||
|
(let loop ([item item])
|
||||||
|
(cond
|
||||||
|
[(is-a? item top-level-window<%>)
|
||||||
|
(and (is-a? item drscheme:unit:frame%)
|
||||||
|
item)]
|
||||||
|
[(is-a? item menu-item<%>)
|
||||||
|
(loop (send item get-parent))]
|
||||||
|
[(is-a? item menu-bar%)
|
||||||
|
(loop (send item get-frame))]
|
||||||
|
[else #f])))]
|
||||||
|
[dc
|
||||||
|
(λ (item)
|
||||||
|
(let ([frame (find-frame item)])
|
||||||
|
(send item enable (and frame (> (length (send frame get-tabs)) 1)))))])
|
||||||
|
(group:add-to-windows-menu
|
||||||
|
(λ (windows-menu)
|
||||||
|
(new menu-item%
|
||||||
|
[parent windows-menu] [label (string-constant prev-tab)] [shortcut #\[]
|
||||||
|
[demand-callback dc]
|
||||||
|
[callback (λ (item _)
|
||||||
|
(let ([frame (find-frame item)])
|
||||||
|
(when frame
|
||||||
|
(send frame prev-tab))))])
|
||||||
|
(new menu-item% [parent windows-menu] [label (string-constant next-tab)] [shortcut #\]]
|
||||||
|
[demand-callback dc]
|
||||||
|
[callback (λ (item _)
|
||||||
|
(let ([frame (find-frame item)])
|
||||||
|
(when frame
|
||||||
|
(send frame next-tab))))])
|
||||||
|
(new separator-menu-item% [parent windows-menu]))))
|
||||||
|
|
||||||
;; Check for any files lost last time.
|
;; Check for any files lost last time.
|
||||||
;; Ignore the framework's empty frames test, since
|
;; Ignore the framework's empty frames test, since
|
||||||
;; the autosave information window may appear and then
|
;; the autosave information window may appear and then
|
||||||
|
|
|
@ -630,6 +630,13 @@
|
||||||
callback of a frame in order for the group to properly close the
|
callback of a frame in order for the group to properly close the
|
||||||
application.})
|
application.})
|
||||||
|
|
||||||
|
(proc-doc/names
|
||||||
|
group:add-to-windows-menu
|
||||||
|
(-> (-> (is-a?/c menu%) any) any)
|
||||||
|
(proc)
|
||||||
|
@{Procedures passed to this function are called when the @onscreen{Windows} menu is
|
||||||
|
created. Use it to add additional menu items.})
|
||||||
|
|
||||||
(proc-doc/names
|
(proc-doc/names
|
||||||
handler:handler?
|
handler:handler?
|
||||||
(any/c . -> . boolean?)
|
(any/c . -> . boolean?)
|
||||||
|
|
|
@ -22,6 +22,14 @@
|
||||||
|
|
||||||
(define mdi-parent #f)
|
(define mdi-parent #f)
|
||||||
|
|
||||||
|
(define extra-windows-menus-proc void)
|
||||||
|
(define (add-to-windows-menu f)
|
||||||
|
(let ([old extra-windows-menus-proc])
|
||||||
|
(set! extra-windows-menus-proc
|
||||||
|
(λ (menu)
|
||||||
|
(f menu)
|
||||||
|
(old menu)))))
|
||||||
|
|
||||||
(define %
|
(define %
|
||||||
(class object%
|
(class object%
|
||||||
|
|
||||||
|
@ -97,8 +105,7 @@
|
||||||
[parent menu]
|
[parent menu]
|
||||||
[callback (λ (x y)
|
[callback (λ (x y)
|
||||||
(let ([frame (send (send menu get-parent) get-frame)])
|
(let ([frame (send (send menu get-parent) get-frame)])
|
||||||
(send frame maximize (not (send frame is-maximized?)))))])
|
(send frame maximize (not (send frame is-maximized?)))))]))
|
||||||
(make-object separator-menu-item% menu))
|
|
||||||
(instantiate menu:can-restore-menu-item% ()
|
(instantiate menu:can-restore-menu-item% ()
|
||||||
(label (string-constant bring-frame-to-front...))
|
(label (string-constant bring-frame-to-front...))
|
||||||
(parent menu)
|
(parent menu)
|
||||||
|
@ -110,6 +117,9 @@
|
||||||
(callback (λ (x y) (most-recent-window-to-front)))
|
(callback (λ (x y) (most-recent-window-to-front)))
|
||||||
(shortcut #\'))
|
(shortcut #\'))
|
||||||
(make-object separator-menu-item% menu)
|
(make-object separator-menu-item% menu)
|
||||||
|
|
||||||
|
(extra-windows-menus-proc menu)
|
||||||
|
|
||||||
(for-each
|
(for-each
|
||||||
(λ (frame)
|
(λ (frame)
|
||||||
(let ([frame (frame-frame frame)])
|
(let ([frame (frame-frame frame)])
|
||||||
|
|
|
@ -294,7 +294,8 @@
|
||||||
(define-signature group^ extends group-class^
|
(define-signature group^ extends group-class^
|
||||||
(get-the-frame-group
|
(get-the-frame-group
|
||||||
on-close-action
|
on-close-action
|
||||||
can-close-check))
|
can-close-check
|
||||||
|
add-to-windows-menu))
|
||||||
|
|
||||||
(define-signature handler-class^
|
(define-signature handler-class^
|
||||||
())
|
())
|
||||||
|
|
|
@ -707,12 +707,15 @@ please adhere to these guidelines:
|
||||||
|
|
||||||
(wrap-text-item "Wrap Text")
|
(wrap-text-item "Wrap Text")
|
||||||
|
|
||||||
|
;; windows menu
|
||||||
(windows-menu-label "&Windows")
|
(windows-menu-label "&Windows")
|
||||||
(minimize "Minimize") ;; minimize and zoom are only used under mac os x
|
(minimize "Minimize") ;; minimize and zoom are only used under mac os x
|
||||||
(zoom "Zoom")
|
(zoom "Zoom")
|
||||||
(bring-frame-to-front "Bring Frame to Front") ;;; title of dialog
|
(bring-frame-to-front "Bring Frame to Front") ;;; title of dialog
|
||||||
(bring-frame-to-front... "Bring Frame to Front...") ;;; corresponding title of menu item
|
(bring-frame-to-front... "Bring Frame to Front...") ;;; corresponding title of menu item
|
||||||
(most-recent-window "Most Recent Window")
|
(most-recent-window "Most Recent Window")
|
||||||
|
(next-tab "Next Tab")
|
||||||
|
(prev-tab "Previous Tab")
|
||||||
|
|
||||||
(view-menu-label "&View")
|
(view-menu-label "&View")
|
||||||
(show-overview "Show Program Contour")
|
(show-overview "Show Program Contour")
|
||||||
|
@ -1430,5 +1433,6 @@ please adhere to these guidelines:
|
||||||
(leave-alone "Leave alone")
|
(leave-alone "Leave alone")
|
||||||
(normalize-string-info "The string you pasted contains ligatures or other non-normalized characters. Normalize them?")
|
(normalize-string-info "The string you pasted contains ligatures or other non-normalized characters. Normalize them?")
|
||||||
(normalize-string-preference "Normalize pasted strings")
|
(normalize-string-preference "Normalize pasted strings")
|
||||||
|
(ask-about-normalizing-strings "Ask about normalizing strings")
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user