...
original commit: e3b8c4eb14bda5718c28fc1357d20c290c416697
This commit is contained in:
parent
1d4a9b6b63
commit
547c8d98d3
|
@ -799,16 +799,30 @@
|
|||
(send to insert (send snip copy))
|
||||
(loop (send snip next)))))]
|
||||
|
||||
[text-keymap/editor%
|
||||
(class text:keymap% args
|
||||
(rename [super-get-keymaps get-keymaps])
|
||||
(override
|
||||
[get-keymaps
|
||||
(lambda ()
|
||||
(if (preferences:get 'framework:menu-bindings)
|
||||
(append (list (keymap:get-editor))
|
||||
(super-get-keymaps))
|
||||
(append (super-get-keymaps)
|
||||
(list (keymap:get-editor)))))])
|
||||
(sequence
|
||||
(apply super-init args)))]
|
||||
|
||||
|
||||
[find-panel (make-object horizontal-panel% dialog)]
|
||||
[find-message (make-object message% "Find" find-panel)]
|
||||
[f-text (make-object text%)]
|
||||
[f-text (make-object text-keymap/editor%)]
|
||||
[find-canvas (make-object editor-canvas% find-panel f-text
|
||||
'(hide-hscroll hide-vscroll))]
|
||||
|
||||
[replace-panel (make-object horizontal-panel% dialog)]
|
||||
[replace-message (make-object message% "Replace" replace-panel)]
|
||||
[r-text (make-object text%)]
|
||||
[r-text (make-object text-keymap/editor%)]
|
||||
[replace-canvas (make-object editor-canvas% replace-panel r-text
|
||||
'(hide-hscroll hide-vscroll))]
|
||||
|
||||
|
|
|
@ -226,10 +226,12 @@
|
|||
setup-global
|
||||
setup-search
|
||||
setup-file
|
||||
setup-editor
|
||||
|
||||
get-global
|
||||
get-search
|
||||
get-file
|
||||
get-editor
|
||||
|
||||
call/text-keymap-initializer))
|
||||
|
||||
|
|
|
@ -1053,6 +1053,29 @@
|
|||
(map "c:x;c:w" "save-file-as")
|
||||
(map "c:x;c:f" "load-file")))))
|
||||
|
||||
(define (setup-editor kmap)
|
||||
(let ([add/map
|
||||
(lambda (func op key)
|
||||
(send kmap add-function
|
||||
func
|
||||
(lambda (editor evt)
|
||||
(send editor do-edit-operation op)))
|
||||
(send kmap map-function
|
||||
(string-append
|
||||
(case (system-type)
|
||||
[(macos) "d:"]
|
||||
[(windows) "c:"]
|
||||
[(unix) "a:"]
|
||||
[else (error 'keymap.ss "unknown platform: ~s" (system-type))])
|
||||
key)
|
||||
func))])
|
||||
(add/map "editor-undo" 'undo "z")
|
||||
(add/map "editor-redo" 'redo "y")
|
||||
(add/map "editor-cut" 'cut "x")
|
||||
(add/map "editor-copy" 'copy "c")
|
||||
(add/map "editor-paste" 'paste "v")
|
||||
(add/map "editor-select-all" 'select-all "a")))
|
||||
|
||||
(define (generic-setup keymap)
|
||||
(add-editor-keymap-functions keymap)
|
||||
(add-pasteboard-keymap-functions keymap)
|
||||
|
@ -1073,6 +1096,10 @@
|
|||
(setup-search search)
|
||||
(define (get-search) search)
|
||||
|
||||
(define editor (make-object aug-keymap%))
|
||||
(setup-editor editor)
|
||||
(define (get-editor) editor)
|
||||
|
||||
(define (call/text-keymap-initializer thunk)
|
||||
(let ([ctki (current-text-keymap-initializer)])
|
||||
(parameterize ([current-text-keymap-initializer
|
||||
|
|
Loading…
Reference in New Issue
Block a user