...
original commit: 1ce6167edb3b997e5d7a5eeb00cce23231cc7535
This commit is contained in:
parent
bb5df936e2
commit
566cca2361
|
@ -565,7 +565,7 @@
|
|||
get-editor<%>
|
||||
|
||||
make-editor
|
||||
save-as
|
||||
save-as
|
||||
get-canvas
|
||||
get-editor))
|
||||
|
||||
|
@ -910,7 +910,7 @@
|
|||
(send to-be-searched-canvas force-display-focus #t)
|
||||
(send dialog show #t)))))
|
||||
|
||||
(define searchable<%> (interface (text<%>)
|
||||
(define searchable<%> (interface (basic<%>)
|
||||
get-text-to-search
|
||||
hide-search
|
||||
unhide-search
|
||||
|
@ -918,6 +918,7 @@
|
|||
replace&search
|
||||
replace-all
|
||||
replace
|
||||
can-replace?
|
||||
toggle-search-focus
|
||||
move-to-search-or-search
|
||||
move-to-search-or-reverse-search
|
||||
|
@ -1183,20 +1184,19 @@
|
|||
(send replace-edit get-keymap)))))
|
||||
|
||||
(define searchable-mixin
|
||||
(mixin (text<%>) (searchable<%>) args
|
||||
(mixin (standard-menus<%>) (searchable<%>) args
|
||||
(sequence (init-find/replace-edits))
|
||||
(inherit get-editor)
|
||||
(rename [super-make-root-area-container make-root-area-container]
|
||||
[super-on-activate on-activate]
|
||||
[super-on-close on-close])
|
||||
(private
|
||||
[super-root 'unitiaialized-super-root])
|
||||
(override
|
||||
[get-editor<%> (lambda () text:searching<%>)]
|
||||
[get-editor% (lambda () text:searching%)]
|
||||
[edit-menu:find (lambda (menu evt) (move-to-search-or-search) #t)]
|
||||
[edit-menu:find-again (lambda (menu evt) (search-again) #t)]
|
||||
[edit-menu:replace-and-find-again (lambda (menu evt) (replace&search) #t)])
|
||||
[edit-menu:find (lambda (menu evt) (move-to-search-or-search) #t)]
|
||||
[edit-menu:find-again (lambda (menu evt) (search-again) #t)]
|
||||
[edit-menu:replace-and-find-again (lambda (menu evt) (replace&search) #t)]
|
||||
[edit-menu:replace-and-find-again-on-demand
|
||||
(lambda (item) (send item enable (can-replace?)))])
|
||||
(override
|
||||
[make-root-area-container
|
||||
(lambda (% parent)
|
||||
|
@ -1216,8 +1216,8 @@
|
|||
(super-on-activate on?))])
|
||||
(public
|
||||
[get-text-to-search
|
||||
(lambda ()
|
||||
(get-editor))]
|
||||
(lambda ()
|
||||
(error 'get-text-to-search "abstract method in searchable-mixin"))]
|
||||
[hide-search
|
||||
(opt-lambda ([startup? #f])
|
||||
(send super-root change-children
|
||||
|
@ -1261,6 +1261,17 @@
|
|||
(lambda (x)
|
||||
(set-searching-direction x)
|
||||
(send dir-radio set-selection (if (eq? x 'forward) 0 1)))]
|
||||
[can-replace?
|
||||
(lambda ()
|
||||
(let ([tx (get-text-to-search)])
|
||||
(and
|
||||
tx
|
||||
(not (= 0 (send replace-edit last-position)))
|
||||
(string=?
|
||||
(send tx get-text
|
||||
(send tx get-start-position)
|
||||
(send tx get-end-position))
|
||||
(send find-edit get-text 0 (send find-edit last-position))))))]
|
||||
[replace&search
|
||||
(lambda ()
|
||||
(when (replace)
|
||||
|
@ -1403,6 +1414,21 @@
|
|||
(send replace-canvas set-editor replace-edit)
|
||||
(hide-search #t))))
|
||||
|
||||
(define searchable-text<%> (interface (searchable<%> text<%>)))
|
||||
|
||||
(define searchable-text-mixin
|
||||
(mixin (text<%> searchable<%>) (searchable-text<%>) args
|
||||
(inherit get-editor)
|
||||
(override
|
||||
[get-text-to-search
|
||||
(lambda ()
|
||||
(get-editor))])
|
||||
(override
|
||||
[get-editor<%> (lambda () text:searching<%>)]
|
||||
[get-editor% (lambda () text:searching%)])
|
||||
(sequence (apply super-init args))))
|
||||
|
||||
|
||||
;; to see printouts in memory debugging better.
|
||||
(define memory-text% (class text% args (sequence (apply super-init args))))
|
||||
(define memory-text (make-object memory-text%))
|
||||
|
@ -1444,7 +1470,7 @@
|
|||
|
||||
(define -text% (text-mixin editor%))
|
||||
(define text-info-file% (file-mixin -text%))
|
||||
(define searchable% (searchable-mixin text-info-file%))
|
||||
(define searchable% (searchable-text-mixin (searchable-mixin text-info-file%)))
|
||||
|
||||
(define -pasteboard% (pasteboard-mixin editor%))
|
||||
(define pasteboard-info-file% (file-mixin -pasteboard%))
|
||||
|
|
Loading…
Reference in New Issue
Block a user