..
original commit: 751a47d7442fe5865e4f9ba6b2557b610f92da4f
This commit is contained in:
parent
c074ae181f
commit
c911e52979
|
@ -221,17 +221,20 @@
|
||||||
(show #f)))]
|
(show #f)))]
|
||||||
|
|
||||||
(inherit accept-drop-files)
|
(inherit accept-drop-files)
|
||||||
(super-instantiate ())
|
|
||||||
|
(super-instantiate ())
|
||||||
|
|
||||||
(accept-drop-files #t)
|
(accept-drop-files #t)
|
||||||
|
|
||||||
(let ([mb (make-object (get-menu-bar%) this)])
|
(let ([mb (make-object (get-menu-bar%) this)])
|
||||||
(when (or (eq? (system-type) 'macos)
|
(when (or (eq? (system-type) 'macos)
|
||||||
(eq? (system-type) 'macosx))
|
(eq? (system-type) 'macosx))
|
||||||
(make-object menu:can-restore-underscore-menu% (string-constant windows-menu-label)
|
(make-object menu:can-restore-underscore-menu% (string-constant windows-menu-label)
|
||||||
mb)))
|
mb)))
|
||||||
|
|
||||||
(reorder-menus this)
|
(reorder-menus this)
|
||||||
(send (group:get-the-frame-group) insert-frame this)
|
(send (group:get-the-frame-group) insert-frame this)
|
||||||
|
|
||||||
[define panel (make-root-area-container (get-area-container%) this)]
|
[define panel (make-root-area-container (get-area-container%) this)]
|
||||||
(public get-area-container)
|
(public get-area-container)
|
||||||
[define get-area-container (lambda () panel)]
|
[define get-area-container (lambda () panel)]
|
||||||
|
@ -264,7 +267,9 @@
|
||||||
(draw locked-message "yellow" 'solid "black" 'solid)
|
(draw locked-message "yellow" 'solid "black" 'solid)
|
||||||
(draw unlocked-message (get-panel-background) 'panel (get-panel-background) 'transparent))))
|
(draw unlocked-message (get-panel-background) 'panel (get-panel-background) 'transparent))))
|
||||||
(inherit get-parent min-width min-height stretchable-width stretchable-height)
|
(inherit get-parent min-width min-height stretchable-width stretchable-height)
|
||||||
(super-instantiate ())
|
|
||||||
|
(super-instantiate ())
|
||||||
|
|
||||||
(let ([dc (get-dc)])
|
(let ([dc (get-dc)])
|
||||||
(send dc set-font (send (get-parent) get-label-font))
|
(send dc set-font (send (get-parent) get-label-font))
|
||||||
(let-values ([(w1 h1 _1 _2) (send dc get-text-extent locked-message)]
|
(let-values ([(w1 h1 _1 _2) (send dc get-text-extent locked-message)]
|
||||||
|
@ -445,7 +450,7 @@
|
||||||
;; need high priority callbacks to ensure ordering wrt other callbacks
|
;; need high priority callbacks to ensure ordering wrt other callbacks
|
||||||
(queue-callback t #t))))
|
(queue-callback t #t))))
|
||||||
|
|
||||||
(super-instantiate ())))
|
(super-instantiate ())))
|
||||||
|
|
||||||
(define info<%> (interface (basic<%>)
|
(define info<%> (interface (basic<%>)
|
||||||
determine-width
|
determine-width
|
||||||
|
@ -561,7 +566,7 @@
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(lock-status-changed))]
|
(lock-status-changed))]
|
||||||
|
|
||||||
(super-instantiate ())
|
(super-instantiate ())
|
||||||
(set! outer-info-panel (make-object horizontal-panel% super-root))
|
(set! outer-info-panel (make-object horizontal-panel% super-root))
|
||||||
(send outer-info-panel stretchable-height #f)
|
(send outer-info-panel stretchable-height #f)
|
||||||
|
|
||||||
|
@ -827,7 +832,7 @@
|
||||||
(overwrite-status-changed)
|
(overwrite-status-changed)
|
||||||
(anchor-status-changed)
|
(anchor-status-changed)
|
||||||
(editor-position-changed))]
|
(editor-position-changed))]
|
||||||
(super-instantiate ())
|
(super-instantiate ())
|
||||||
|
|
||||||
(inherit get-info-panel)
|
(inherit get-info-panel)
|
||||||
|
|
||||||
|
@ -1109,9 +1114,7 @@
|
||||||
(define help-menu:about-string (lambda () (application:current-app-name)))
|
(define help-menu:about-string (lambda () (application:current-app-name)))
|
||||||
(define help-menu:create-about? (lambda () #t))
|
(define help-menu:create-about? (lambda () #t))
|
||||||
|
|
||||||
(super-instantiate
|
(super-instantiate () (label (get-entire-label)))
|
||||||
()
|
|
||||||
(label (get-entire-label)))
|
|
||||||
|
|
||||||
(define canvas #f)
|
(define canvas #f)
|
||||||
(define editor #f)
|
(define editor #f)
|
||||||
|
@ -1129,12 +1132,16 @@
|
||||||
(send (get-canvas) set-editor editor))
|
(send (get-canvas) set-editor editor))
|
||||||
editor))
|
editor))
|
||||||
|
|
||||||
(cond
|
(cond
|
||||||
[(and filename (file-exists? filename))
|
[(and filename (file-exists? filename))
|
||||||
(send (get-editor) load-file/gui-error filename 'guess)]
|
(let ([ed (get-editor)])
|
||||||
[filename
|
(send ed begin-edit-sequence)
|
||||||
(send (get-editor) set-filename filename)]
|
(send ed load-file/gui-error filename 'guess)
|
||||||
[else (void)])
|
(send ed end-edit-sequence))]
|
||||||
|
[filename
|
||||||
|
(send (get-editor) set-filename filename)]
|
||||||
|
[else (void)])
|
||||||
|
|
||||||
(let ([ed-fn (send (get-editor) get-filename)])
|
(let ([ed-fn (send (get-editor) get-filename)])
|
||||||
(set! label (if ed-fn
|
(set! label (if ed-fn
|
||||||
(or (file-name-from-path ed-fn)
|
(or (file-name-from-path ed-fn)
|
||||||
|
@ -1265,8 +1272,7 @@
|
||||||
[(cancel)
|
[(cancel)
|
||||||
#f]))))
|
#f]))))
|
||||||
|
|
||||||
|
(super-instantiate ())))
|
||||||
(super-instantiate ())))
|
|
||||||
|
|
||||||
(define text<%> (interface (-editor<%>)))
|
(define text<%> (interface (-editor<%>)))
|
||||||
(define text-mixin
|
(define text-mixin
|
||||||
|
@ -1434,7 +1440,7 @@
|
||||||
[b (box 0)])
|
[b (box 0)])
|
||||||
(position-location pos #f b top? #f #t)
|
(position-location pos #f b top? #f #t)
|
||||||
(unbox b)))
|
(unbox b)))
|
||||||
(super-instantiate ())
|
(super-instantiate ())
|
||||||
|
|
||||||
(inherit set-cursor)
|
(inherit set-cursor)
|
||||||
(set-cursor (make-object cursor% 'arrow))
|
(set-cursor (make-object cursor% 'arrow))
|
||||||
|
@ -1514,7 +1520,7 @@
|
||||||
|
|
||||||
(define/public (get-delegatee) delegatee)
|
(define/public (get-delegatee) delegatee)
|
||||||
|
|
||||||
(super-instantiate ())
|
(super-instantiate ())
|
||||||
|
|
||||||
(define delegatee (instantiate delegatee-text% ()))
|
(define delegatee (instantiate delegatee-text% ()))
|
||||||
(define delegate-ec (instantiate delegatee-editor-canvas% ()
|
(define delegate-ec (instantiate delegatee-editor-canvas% ()
|
||||||
|
@ -1979,9 +1985,10 @@
|
||||||
(error 'get-text-to-search "abstract method in searchable-mixin"))
|
(error 'get-text-to-search "abstract method in searchable-mixin"))
|
||||||
(define/public hide-search
|
(define/public hide-search
|
||||||
(opt-lambda ([startup? #f])
|
(opt-lambda ([startup? #f])
|
||||||
(send super-root change-children
|
(when search-gui-built?
|
||||||
(lambda (l)
|
(send super-root change-children
|
||||||
(remove search-panel l)))
|
(lambda (l)
|
||||||
|
(remove search-panel l))))
|
||||||
(clear-search-highlight)
|
(clear-search-highlight)
|
||||||
(unless startup?
|
(unless startup?
|
||||||
(let ([canvas (send (get-text-to-search) get-canvas)])
|
(let ([canvas (send (get-text-to-search) get-canvas)])
|
||||||
|
@ -1994,13 +2001,17 @@
|
||||||
(when (and hidden?
|
(when (and hidden?
|
||||||
(not (preferences:get 'framework:search-using-dialog?)))
|
(not (preferences:get 'framework:search-using-dialog?)))
|
||||||
(set! hidden? #f)
|
(set! hidden? #f)
|
||||||
|
|
||||||
|
(build-search-gui-in-frame)
|
||||||
|
|
||||||
(let ([canvas (send (get-text-to-search) get-canvas)])
|
(let ([canvas (send (get-text-to-search) get-canvas)])
|
||||||
(when canvas
|
(when canvas
|
||||||
(send canvas force-display-focus #t)))
|
(send canvas force-display-focus #t)))
|
||||||
(show/hide-replace (send (get-text-to-search) is-locked?))
|
(show/hide-replace (send (get-text-to-search) is-locked?))
|
||||||
(send search-panel focus)
|
(send search-panel focus)
|
||||||
(send find-edit set-position 0 (send find-edit last-position))
|
(send find-edit set-position 0 (send find-edit last-position))
|
||||||
(send super-root add-child search-panel)
|
(unless (memq search-panel (send super-root get-children))
|
||||||
|
(send super-root add-child search-panel))
|
||||||
(reset-search-anchor (get-text-to-search))))
|
(reset-search-anchor (get-text-to-search))))
|
||||||
|
|
||||||
(define (undock)
|
(define (undock)
|
||||||
|
@ -2008,7 +2019,8 @@
|
||||||
(hide-search)
|
(hide-search)
|
||||||
(search-dialog this))
|
(search-dialog this))
|
||||||
|
|
||||||
(define (show/hide-replace hide?)
|
;; pre-condition : search-gui-built? is #t
|
||||||
|
(define/private (show/hide-replace hide?)
|
||||||
(cond
|
(cond
|
||||||
[hide?
|
[hide?
|
||||||
(send replace-canvas-panel change-children
|
(send replace-canvas-panel change-children
|
||||||
|
@ -2038,8 +2050,9 @@
|
||||||
(let ([close-canvas
|
(let ([close-canvas
|
||||||
(lambda (canvas edit)
|
(lambda (canvas edit)
|
||||||
(send canvas set-editor #f))])
|
(send canvas set-editor #f))])
|
||||||
(close-canvas find-canvas find-edit)
|
(when search-gui-built?
|
||||||
(close-canvas replace-canvas replace-edit))
|
(close-canvas find-canvas find-edit)
|
||||||
|
(close-canvas replace-canvas replace-edit)))
|
||||||
(when (eq? this searching-frame)
|
(when (eq? this searching-frame)
|
||||||
(set-searching-frame #f))))
|
(set-searching-frame #f))))
|
||||||
(public set-search-direction can-replace? replace&search replace-all replace
|
(public set-search-direction can-replace? replace&search replace-all replace
|
||||||
|
@ -2048,7 +2061,8 @@
|
||||||
(define set-search-direction
|
(define set-search-direction
|
||||||
(lambda (x)
|
(lambda (x)
|
||||||
(set-searching-direction x)
|
(set-searching-direction x)
|
||||||
(send dir-radio set-selection (if (eq? x 'forward) 0 1))))
|
(when dir-radio
|
||||||
|
(send dir-radio set-selection (if (eq? x 'forward) 0 1)))))
|
||||||
(define can-replace?
|
(define can-replace?
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(let ([tx (get-text-to-search)])
|
(let ([tx (get-text-to-search)])
|
||||||
|
@ -2114,14 +2128,14 @@
|
||||||
(define (toggle-search-focus)
|
(define (toggle-search-focus)
|
||||||
(set-searching-frame this)
|
(set-searching-frame this)
|
||||||
(unhide-search)
|
(unhide-search)
|
||||||
(send (cond
|
(send (cond
|
||||||
[(send find-canvas has-focus?)
|
[(send find-canvas has-focus?)
|
||||||
replace-canvas]
|
replace-canvas]
|
||||||
[(send replace-canvas has-focus?)
|
[(send replace-canvas has-focus?)
|
||||||
(send (get-text-to-search) get-canvas)]
|
(send (get-text-to-search) get-canvas)]
|
||||||
[else
|
[else
|
||||||
find-canvas])
|
find-canvas])
|
||||||
focus))
|
focus))
|
||||||
(define move-to-search-or-search
|
(define move-to-search-or-search
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(set-searching-frame this)
|
(set-searching-frame this)
|
||||||
|
@ -2130,10 +2144,10 @@
|
||||||
[(preferences:get 'framework:search-using-dialog?)
|
[(preferences:get 'framework:search-using-dialog?)
|
||||||
(search-dialog this)]
|
(search-dialog this)]
|
||||||
[else
|
[else
|
||||||
(if (or (send find-canvas has-focus?)
|
(if (or (send find-canvas has-focus?)
|
||||||
(send replace-canvas has-focus?))
|
(send replace-canvas has-focus?))
|
||||||
(search-again 'forward)
|
(search-again 'forward)
|
||||||
(send find-canvas focus))])))
|
(send find-canvas focus))])))
|
||||||
(define move-to-search-or-reverse-search
|
(define move-to-search-or-reverse-search
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(set-searching-frame this)
|
(set-searching-frame this)
|
||||||
|
@ -2149,85 +2163,111 @@
|
||||||
(set-search-direction direction)
|
(set-search-direction direction)
|
||||||
(send find-edit search #t beep?)))
|
(send find-edit search #t beep?)))
|
||||||
|
|
||||||
(super-instantiate ())
|
(define search-panel #f)
|
||||||
|
(define search-gui-built? #f)
|
||||||
(define search-panel (make-object horizontal-panel% super-root '(border)))
|
(define dir-radio #f)
|
||||||
|
(define replace-canvas-panel #f)
|
||||||
(define left-panel (make-object vertical-panel% search-panel))
|
(define find-canvas #f)
|
||||||
(define find-canvas (make-object searchable-canvas% left-panel))
|
(define replace-canvas #f)
|
||||||
(define replace-canvas-panel (instantiate vertical-panel% ()
|
(define hidden? #t)
|
||||||
(parent left-panel)
|
(define replace-button-panel #f)
|
||||||
(stretchable-width #t)
|
(define middle-middle-panel #f)
|
||||||
(stretchable-height #f)))
|
(define replace-button #f)
|
||||||
(define replace-canvas (make-object searchable-canvas% replace-canvas-panel))
|
(define replace&search-button #f)
|
||||||
|
(define replace-all-button #f)
|
||||||
(define middle-left-panel (make-object vertical-pane% search-panel))
|
|
||||||
(define middle-middle-panel (make-object vertical-pane% search-panel))
|
(inherit begin-container-sequence end-container-sequence)
|
||||||
(define middle-right-panel (make-object vertical-pane% search-panel))
|
(define/private (build-search-gui-in-frame)
|
||||||
|
(unless search-gui-built?
|
||||||
(define search-button (make-object button%
|
(set! search-gui-built? #t)
|
||||||
(string-constant find)
|
(begin-container-sequence)
|
||||||
middle-left-panel
|
(let ()
|
||||||
(lambda args (search-again))))
|
(define _0 (set! search-panel (make-object horizontal-panel% super-root '(border))))
|
||||||
|
(define left-panel (make-object vertical-panel% search-panel))
|
||||||
(define replace-button-panel
|
(define _1 (set! find-canvas (make-object searchable-canvas% left-panel)))
|
||||||
(instantiate vertical-panel% ()
|
(define _2
|
||||||
(parent middle-left-panel)
|
(set! replace-canvas-panel (instantiate vertical-panel% ()
|
||||||
(stretchable-width #f)
|
(parent left-panel)
|
||||||
(stretchable-height #f)))
|
(stretchable-width #t)
|
||||||
|
(stretchable-height #f))))
|
||||||
(define replace-button (make-object button% (string-constant replace)
|
(define _3
|
||||||
replace-button-panel
|
(set! replace-canvas (make-object searchable-canvas% replace-canvas-panel)))
|
||||||
(lambda x (replace))))
|
|
||||||
|
(define middle-left-panel (make-object vertical-pane% search-panel))
|
||||||
(define replace&search-button (make-object button%
|
(define _4
|
||||||
(string-constant replace&find-again)
|
(set! middle-middle-panel (make-object vertical-pane% search-panel)))
|
||||||
middle-middle-panel
|
(define middle-right-panel (make-object vertical-pane% search-panel))
|
||||||
(lambda x (replace&search))))
|
|
||||||
|
(define search-button (make-object button%
|
||||||
(define replace-all-button (make-object button%
|
(string-constant find)
|
||||||
(string-constant replace-to-end)
|
middle-left-panel
|
||||||
middle-middle-panel
|
(lambda args (search-again))))
|
||||||
(lambda x (replace-all))))
|
|
||||||
|
(define _5
|
||||||
(define dir-radio (make-object radio-box%
|
(set! replace-button-panel
|
||||||
#f
|
(instantiate vertical-panel% ()
|
||||||
(list (string-constant forward)
|
(parent middle-left-panel)
|
||||||
(string-constant backward))
|
(stretchable-width #f)
|
||||||
middle-right-panel
|
(stretchable-height #f))))
|
||||||
(lambda (dir-radio evt)
|
|
||||||
(let ([forward (if (= (send dir-radio get-selection) 0)
|
(define _6
|
||||||
'forward
|
(set! replace-button (make-object button% (string-constant replace)
|
||||||
'backward)])
|
replace-button-panel
|
||||||
(set-search-direction forward)
|
(lambda x (replace)))))
|
||||||
(reset-search-anchor (get-text-to-search))))))
|
|
||||||
(define hide/undock-pane (make-object horizontal-panel% middle-right-panel))
|
(define _7
|
||||||
(define hide-button (make-object button% (string-constant hide)
|
(set! replace&search-button (make-object button%
|
||||||
hide/undock-pane
|
(string-constant replace&find-again)
|
||||||
(lambda args (hide-search))))
|
middle-middle-panel
|
||||||
(define undock-button (make-object button% (string-constant undock)
|
(lambda x (replace&search)))))
|
||||||
hide/undock-pane
|
|
||||||
(lambda args (undock))))
|
(define _8
|
||||||
(define hidden? #f)
|
(set! replace-all-button (make-object button%
|
||||||
|
(string-constant replace-to-end)
|
||||||
(let ([align
|
middle-middle-panel
|
||||||
(lambda (x y)
|
(lambda x (replace-all)))))
|
||||||
(let ([m (max (send x get-width)
|
(define _9
|
||||||
(send y get-width))])
|
(set! dir-radio (make-object radio-box%
|
||||||
(send x min-width m)
|
#f
|
||||||
(send y min-width m)))])
|
(list (string-constant forward)
|
||||||
(align search-button replace-button)
|
(string-constant backward))
|
||||||
(align replace&search-button replace-all-button))
|
middle-right-panel
|
||||||
(for-each (lambda (x) (send x set-alignment 'center 'center))
|
(lambda (dir-radio evt)
|
||||||
(list middle-left-panel middle-middle-panel))
|
(let ([forward (if (= (send dir-radio get-selection) 0)
|
||||||
(for-each (lambda (x) (send x stretchable-height #f))
|
'forward
|
||||||
(list search-panel middle-left-panel middle-middle-panel middle-right-panel))
|
'backward)])
|
||||||
(for-each (lambda (x) (send x stretchable-width #f))
|
(set-search-direction forward)
|
||||||
(list middle-left-panel middle-middle-panel middle-right-panel))
|
(reset-search-anchor (get-text-to-search)))))))
|
||||||
(send find-canvas set-editor find-edit)
|
|
||||||
(send find-canvas stretchable-height #t)
|
(define hide/undock-pane (make-object horizontal-panel% middle-right-panel))
|
||||||
(send replace-canvas set-editor replace-edit)
|
(define hide-button (make-object button% (string-constant hide)
|
||||||
(hide-search #t)))
|
hide/undock-pane
|
||||||
|
(lambda args (hide-search))))
|
||||||
|
(define undock-button (make-object button% (string-constant undock)
|
||||||
|
hide/undock-pane
|
||||||
|
(lambda args (undock))))
|
||||||
|
(let ([align
|
||||||
|
(lambda (x y)
|
||||||
|
(let ([m (max (send x get-width)
|
||||||
|
(send y get-width))])
|
||||||
|
(send x min-width m)
|
||||||
|
(send y min-width m)))])
|
||||||
|
(align search-button replace-button)
|
||||||
|
(align replace&search-button replace-all-button))
|
||||||
|
(for-each (lambda (x) (send x set-alignment 'center 'center))
|
||||||
|
(list middle-left-panel middle-middle-panel))
|
||||||
|
(for-each (lambda (x) (send x stretchable-height #f))
|
||||||
|
(list search-panel middle-left-panel middle-middle-panel middle-right-panel))
|
||||||
|
(for-each (lambda (x) (send x stretchable-width #f))
|
||||||
|
(list middle-left-panel middle-middle-panel middle-right-panel))
|
||||||
|
(send find-canvas set-editor find-edit)
|
||||||
|
(send find-canvas stretchable-height #t)
|
||||||
|
(send replace-canvas set-editor replace-edit))
|
||||||
|
(end-container-sequence)))
|
||||||
|
|
||||||
|
(super-instantiate ())
|
||||||
|
|
||||||
|
(hide-search)))
|
||||||
|
|
||||||
(define searchable-text<%> (interface (searchable<%> text<%>)))
|
(define searchable-text<%> (interface (searchable<%> text<%>)))
|
||||||
|
|
||||||
|
@ -2275,7 +2315,7 @@
|
||||||
[else #f]))])
|
[else #f]))])
|
||||||
(and user-allowed-or-not-modified
|
(and user-allowed-or-not-modified
|
||||||
(super-can-close?))))]
|
(super-can-close?))))]
|
||||||
(super-instantiate ())))
|
(super-instantiate ())))
|
||||||
|
|
||||||
(define bday-click-canvas%
|
(define bday-click-canvas%
|
||||||
(class canvas%
|
(class canvas%
|
||||||
|
|
Loading…
Reference in New Issue
Block a user