changed menu keybinding for find so that it toggles the keyboard focus back and forth with the searching window

svn: r10934
This commit is contained in:
Robby Findler 2008-07-27 13:57:33 +00:00
parent 8b59996cb4
commit f6714c551c
7 changed files with 113 additions and 38 deletions

View File

@ -2637,23 +2637,7 @@ module browser threading seems wrong.
(update-shown))
#\e
(string-constant interactions-menu-item-help-string)))
(new menu:can-restore-menu-item%
[shortcut #\f]
[shortcut-prefix (cons (case (system-type)
[(macosx) 'option]
[else 'alt])
(get-default-shortcut-prefix))]
[parent (get-show-menu)]
[label (string-constant show-find-bar)]
[callback
(λ (menu evt)
(cond
[(search-hidden?)
(send menu set-label (string-constant hide-find-bar))
(unhide-search #t)]
[else
(send menu set-label (string-constant hide-find-bar))
(hide-search)]))])
(new menu:can-restore-menu-item%
(shortcut #\u)
(label

View File

@ -1956,10 +1956,23 @@
(define/override (edit-menu:find-case-sensitive-on-demand item) (send item check case-sensitive-search?))
(define/override (edit-menu:create-find-case-sensitive?) #t)
(define/override (edit-menu:replace-all-callback menu evt) #t)
(define/override (edit-menu:replace-all-callback menu evt) (replace-all) #t)
(define/override (edit-menu:replace-all-on-demand item) (send item enable (can-replace?)))
(define/override (edit-menu:create-replace-all?) #t)
(define/override (edit-menu:create-toggle-find-focus?) #t)
(define/override (edit-menu:toggle-find-focus-callback menu evt)
(cond
[hidden?
(unhide-search #t)]
[(or (not text-to-search)
(send (send text-to-search get-canvas) has-focus?))
(send find-canvas focus)]
[else
(let ([canvas (send text-to-search get-canvas)])
(when canvas
(send canvas focus)))]))
(define/override make-root-area-container
(λ (% parent)
(let* ([s-root (super make-root-area-container

View File

@ -391,6 +391,18 @@
'(string-constant replace-all-menu-item)
edit-menu:edit-target-on-demand
#f)
(make-an-item 'edit-menu 'toggle-find-focus
'(string-constant toggle-find-focus-info)
'(λ (item control) (void))
#\f
'(cons (case (system-type)
[(macosx) 'option]
[else 'alt])
(get-default-shortcut-prefix))
'(string-constant toggle-find-focus)
'(λ (item) (void))
#f)
(make-a-checkable-item 'edit-menu 'find-case-sensitive
'(string-constant find-case-sensitive-info)
'(λ (item control) (void))

View File

@ -146,6 +146,12 @@
edit-menu:replace-all-help-string
edit-menu:replace-all-on-demand
edit-menu:create-replace-all?
edit-menu:toggle-find-focus-callback
edit-menu:get-toggle-find-focus-item
edit-menu:toggle-find-focus-string
edit-menu:toggle-find-focus-help-string
edit-menu:toggle-find-focus-on-demand
edit-menu:create-toggle-find-focus?
edit-menu:find-case-sensitive-callback
edit-menu:get-find-case-sensitive-item
edit-menu:find-case-sensitive-string
@ -179,7 +185,8 @@
'framework:menu-bindings
(λ (p v)
(let loop ((menu (get-menu-bar)))
(when (is-a? menu menu:can-restore<%>) (if v (send menu restore-keybinding) (send menu set-shortcut #f)))
(when (is-a? menu menu:can-restore<%>)
(if v (send menu restore-keybinding) (send menu set-shortcut #f)))
(when (is-a? menu menu:can-restore-underscore<%>)
(if v (send menu restore-underscores) (send menu erase-underscores)))
(when (is-a? menu menu-item-container<%>) (for-each loop (send menu get-items)))))))
@ -249,7 +256,9 @@
(define/public (file-menu:get-quit-item) file-menu:quit-item)
(define/public
(file-menu:quit-string)
(if (eq? (system-type) 'windows) (string-constant quit-menu-item-windows) (string-constant quit-menu-item-others)))
(if (eq? (system-type) 'windows)
(string-constant quit-menu-item-windows)
(string-constant quit-menu-item-others)))
(define/public (file-menu:quit-help-string) (string-constant quit-info))
(define/public file-menu:quit-on-demand (λ (menu-item) (void)))
(define/public (file-menu:create-quit?) (not (current-eventspace-has-standard-menus?)))
@ -402,8 +411,12 @@
(define/public (edit-menu:create-replace-and-find?) #f)
(define/public edit-menu:replace-and-find-backwards-callback (λ (item control) (void)))
(define/public (edit-menu:get-replace-and-find-backwards-item) edit-menu:replace-and-find-backwards-item)
(define/public (edit-menu:replace-and-find-backwards-string) (string-constant replace-and-find-backwards-menu-item))
(define/public (edit-menu:replace-and-find-backwards-help-string) (string-constant replace-and-find-backwards-info))
(define/public
(edit-menu:replace-and-find-backwards-string)
(string-constant replace-and-find-backwards-menu-item))
(define/public
(edit-menu:replace-and-find-backwards-help-string)
(string-constant replace-and-find-backwards-info))
(define/public
edit-menu:replace-and-find-backwards-on-demand
(λ (item) (send item enable (let ((target (get-edit-target-object))) (and target (is-a? target editor<%>))))))
@ -416,6 +429,12 @@
edit-menu:replace-all-on-demand
(λ (item) (send item enable (let ((target (get-edit-target-object))) (and target (is-a? target editor<%>))))))
(define/public (edit-menu:create-replace-all?) #f)
(define/public edit-menu:toggle-find-focus-callback (λ (item control) (void)))
(define/public (edit-menu:get-toggle-find-focus-item) edit-menu:toggle-find-focus-item)
(define/public (edit-menu:toggle-find-focus-string) (string-constant toggle-find-focus))
(define/public (edit-menu:toggle-find-focus-help-string) (string-constant toggle-find-focus-info))
(define/public edit-menu:toggle-find-focus-on-demand (λ (item) (void)))
(define/public (edit-menu:create-toggle-find-focus?) #f)
(define/public edit-menu:find-case-sensitive-callback (λ (item control) (void)))
(define/public (edit-menu:get-find-case-sensitive-item) edit-menu:find-case-sensitive-item)
(define/public (edit-menu:find-case-sensitive-string) (string-constant find-case-sensitive-menu-item))
@ -453,7 +472,8 @@
(label (file-menu:new-string))
(parent file-menu)
(callback
(let ((file-menu:new-callback (λ (item evt) (file-menu:new-callback item evt)))) file-menu:new-callback))
(let ((file-menu:new-callback (λ (item evt) (file-menu:new-callback item evt))))
file-menu:new-callback))
(shortcut #\n)
(shortcut-prefix (get-default-shortcut-prefix))
(help-string (file-menu:new-help-string))
@ -466,7 +486,8 @@
(label (file-menu:open-string))
(parent file-menu)
(callback
(let ((file-menu:open-callback (λ (item evt) (file-menu:open-callback item evt)))) file-menu:open-callback))
(let ((file-menu:open-callback (λ (item evt) (file-menu:open-callback item evt))))
file-menu:open-callback))
(shortcut #\o)
(shortcut-prefix (get-default-shortcut-prefix))
(help-string (file-menu:open-help-string))
@ -501,7 +522,8 @@
(label (file-menu:save-string))
(parent file-menu)
(callback
(let ((file-menu:save-callback (λ (item evt) (file-menu:save-callback item evt)))) file-menu:save-callback))
(let ((file-menu:save-callback (λ (item evt) (file-menu:save-callback item evt))))
file-menu:save-callback))
(shortcut #\s)
(shortcut-prefix (get-default-shortcut-prefix))
(help-string (file-menu:save-help-string))
@ -555,7 +577,8 @@
(label (file-menu:quit-string))
(parent file-menu)
(callback
(let ((file-menu:quit-callback (λ (item evt) (file-menu:quit-callback item evt)))) file-menu:quit-callback))
(let ((file-menu:quit-callback (λ (item evt) (file-menu:quit-callback item evt))))
file-menu:quit-callback))
(shortcut #\q)
(shortcut-prefix (get-default-shortcut-prefix))
(help-string (file-menu:quit-help-string))
@ -568,7 +591,8 @@
(label (edit-menu:undo-string))
(parent edit-menu)
(callback
(let ((edit-menu:undo-callback (λ (item evt) (edit-menu:undo-callback item evt)))) edit-menu:undo-callback))
(let ((edit-menu:undo-callback (λ (item evt) (edit-menu:undo-callback item evt))))
edit-menu:undo-callback))
(shortcut #\z)
(shortcut-prefix (get-default-shortcut-prefix))
(help-string (edit-menu:undo-help-string))
@ -580,10 +604,13 @@
(label (edit-menu:redo-string))
(parent edit-menu)
(callback
(let ((edit-menu:redo-callback (λ (item evt) (edit-menu:redo-callback item evt)))) edit-menu:redo-callback))
(let ((edit-menu:redo-callback (λ (item evt) (edit-menu:redo-callback item evt))))
edit-menu:redo-callback))
(shortcut (if (eq? (system-type) 'windows) #\y #\z))
(shortcut-prefix
(if (eq? (system-type) 'windows) (get-default-shortcut-prefix) (cons 'shift (get-default-shortcut-prefix))))
(if (eq? (system-type) 'windows)
(get-default-shortcut-prefix)
(cons 'shift (get-default-shortcut-prefix))))
(help-string (edit-menu:redo-help-string))
(demand-callback (λ (menu-item) (edit-menu:redo-on-demand menu-item))))))
(edit-menu:between-redo-and-cut (get-edit-menu))
@ -594,7 +621,8 @@
(label (edit-menu:cut-string))
(parent edit-menu)
(callback
(let ((edit-menu:cut-callback (λ (item evt) (edit-menu:cut-callback item evt)))) edit-menu:cut-callback))
(let ((edit-menu:cut-callback (λ (item evt) (edit-menu:cut-callback item evt))))
edit-menu:cut-callback))
(shortcut #\x)
(shortcut-prefix (get-default-shortcut-prefix))
(help-string (edit-menu:cut-help-string))
@ -607,7 +635,8 @@
(label (edit-menu:copy-string))
(parent edit-menu)
(callback
(let ((edit-menu:copy-callback (λ (item evt) (edit-menu:copy-callback item evt)))) edit-menu:copy-callback))
(let ((edit-menu:copy-callback (λ (item evt) (edit-menu:copy-callback item evt))))
edit-menu:copy-callback))
(shortcut #\c)
(shortcut-prefix (get-default-shortcut-prefix))
(help-string (edit-menu:copy-help-string))
@ -662,7 +691,8 @@
(label (edit-menu:find-string))
(parent edit-menu)
(callback
(let ((edit-menu:find-callback (λ (item evt) (edit-menu:find-callback item evt)))) edit-menu:find-callback))
(let ((edit-menu:find-callback (λ (item evt) (edit-menu:find-callback item evt))))
edit-menu:find-callback))
(shortcut #\f)
(shortcut-prefix (get-default-shortcut-prefix))
(help-string (edit-menu:find-help-string))
@ -687,7 +717,8 @@
(label (edit-menu:replace-and-find-string))
(parent edit-menu)
(callback
(let ((edit-menu:replace-and-find-callback (λ (item evt) (edit-menu:replace-and-find-callback item evt))))
(let ((edit-menu:replace-and-find-callback
(λ (item evt) (edit-menu:replace-and-find-callback item evt))))
edit-menu:replace-and-find-callback))
(shortcut #\g)
(shortcut-prefix (get-default-shortcut-prefix))
@ -720,6 +751,21 @@
(shortcut-prefix (get-default-shortcut-prefix))
(help-string (edit-menu:replace-all-help-string))
(demand-callback (λ (menu-item) (edit-menu:replace-all-on-demand menu-item))))))
(define edit-menu:toggle-find-focus-item
(and (edit-menu:create-toggle-find-focus?)
(new
(get-menu-item%)
(label (edit-menu:toggle-find-focus-string))
(parent edit-menu)
(callback
(let ((edit-menu:toggle-find-focus-callback
(λ (item evt) (edit-menu:toggle-find-focus-callback item evt))))
edit-menu:toggle-find-focus-callback))
(shortcut #\f)
(shortcut-prefix
(cons (case (system-type) ((macosx) 'option) (else 'alt)) (get-default-shortcut-prefix)))
(help-string (edit-menu:toggle-find-focus-help-string))
(demand-callback (λ (menu-item) (edit-menu:toggle-find-focus-on-demand menu-item))))))
(define edit-menu:find-case-sensitive-item
(and (edit-menu:create-find-case-sensitive?)
(new

View File

@ -1026,7 +1026,15 @@ framework)) @(require (for-label scheme/gui)) @(require
Checks @scheme[item] when searching is case-sensitive and unchecks
it otherwise.
}
@defmethod*[#:mode override (((edit-menu:create-find-case-sensitive) boolean?))]{
@defmethod*[#:mode override (((edit-menu:create-find-case-sensitive?) boolean?))]{
returns @scheme[#t].
}
@defmethod*[#:mode override (((edit-menu:toggle-find-focus-callback) boolean?))]{
toggles the focus between the find window and the window being searched.
}
@defmethod*[#:mode override (((edit-menu:create-toggle-find-focus?) boolean?))]{
returns @scheme[#t].
}

View File

@ -293,6 +293,18 @@
@(defmethod (edit-menu:replace-all-help-string) string? "The result of this method is used as the help string" "\n" "when the " (scheme menu-item%) " object is created." "\n" "\n" "Defaults to " (scheme (string-constant replace-all-info)) ".")
@(defmethod (edit-menu:get-toggle-find-focus-item) (or/c false/c (is-a?/c menu-item%)) "This method returns the " (scheme menu-item%) " object corresponding" "\n" "to this menu item, if it has been created (as controlled by" "\n" (method frame:standard-menus<%> edit-menu:create-toggle-find-focus?) ").")
@(defmethod (edit-menu:create-toggle-find-focus?) boolean? "The result of this method determines if the corresponding" "\n" "menu item is created. Override it to control the creation of the menu item." "\n" "\n" "Defaults to " (scheme #f) ".")
@(defmethod (edit-menu:toggle-find-focus-callback (item (is-a?/c menu-item%)) (control (is-a?/c control-event%))) void? "Defaults to " (schemeblock (void)) " ")
@(defmethod (edit-menu:toggle-find-focus-on-demand (item (is-a?/c menu-item%))) void? "The menu item's on-demand proc calls this method." "\n" "\n" "Defaults to " (schemeblock (void)))
@(defmethod (edit-menu:toggle-find-focus-string) string? "The result of this method is used as the name of the " (scheme menu-item%) "." "\n" "\n" "Defaults to " (scheme (string-constant toggle-find-focus)) ".")
@(defmethod (edit-menu:toggle-find-focus-help-string) string? "The result of this method is used as the help string" "\n" "when the " (scheme menu-item%) " object is created." "\n" "\n" "Defaults to " (scheme (string-constant toggle-find-focus-info)) ".")
@(defmethod (edit-menu:get-find-case-sensitive-item) (or/c false/c (is-a?/c menu-item%)) "This method returns the " (scheme menu-item%) " object corresponding" "\n" "to this menu item, if it has been created (as controlled by" "\n" (method frame:standard-menus<%> edit-menu:create-find-case-sensitive?) ").")
@(defmethod (edit-menu:create-find-case-sensitive?) boolean? "The result of this method determines if the corresponding" "\n" "menu item is created. Override it to control the creation of the menu item." "\n" "\n" "Defaults to " (scheme #f) ".")

View File

@ -513,6 +513,9 @@ please adhere to these guidelines:
(backward "Backward")
(hide "Hide")
(find-case-sensitive "Case sensitive") ;; the check box in both the docked & undocked search
(toggle-find-focus "Toggle Search Focus") ;; menu item
(toggle-find-focus-info "Toggles the keyboard focus between the window being searched and the search bar")
;;; multi-file-search
(mfs-multi-file-search-menu-item "Search in Files...")
@ -711,9 +714,6 @@ please adhere to these guidelines:
(show-module-browser "Show Module Browser")
(hide-module-browser "Hide Module Browser")
(show-find-bar "Show Find Bar")
(hide-find-bar "Hide Find Bar")
(help-menu-label "&Help")
(about-info "Credits and details for this application")
(about-menu-item "About...")