File tree Expand file tree Collapse file tree 3 files changed +37
-5
lines changed
gui-doc/scribblings/framework
gui-lib/framework/private Expand file tree Collapse file tree 3 files changed +37
-5
lines changed Original file line number Diff line number Diff line change 11#lang scribble/doc
22@(require scribble/manual scribble/extract)
3- @(require (for-label framework))
4- @(require (for-label scheme/gui))
3+ @(require (for-label framework racket/gui))
54@title{Text}
65
76@definterface[text:basic<%> (editor:basic<%> text%)]{
13351334 }
13361335}
13371336
1337+ @definterface[text:overwrite-disable<%> ()]{
1338+ Classes implementing this interface disable overwrite mode when
1339+ the overwrite mode keybindings are turned off.
1340+ }
1341+
1342+ @defmixin[text:overwrite-disable-mixin (text%) (text:set-overwrite-mode<%>)]{
1343+ This mixin adds a callback for @racket['framework:overwrite-mode-keybindings ]
1344+ via @racket[preferences:add-callback] that calls @method[text% set-overwrite-mode]
1345+ with @racket[#f ] when the preference is set to @racket[#f ].
1346+ }
1347+
13381348@defclass[text:basic% (text:basic-mixin (editor:basic-mixin text%)) ()]{}
13391349@defclass[text:line-spacing% (text:line-spacing-mixin text:basic%) ()]{}
13401350@defclass[text:hide-caret/selection% (text:hide-caret/selection-mixin text:line-spacing%) ()]{}
13441354@defclass[text:wide-snip% (text:wide-snip-mixin text:line-spacing%) ()]{}
13451355@defclass[text:standard-style-list% (editor:standard-style-list-mixin text:wide-snip%) ()]{}
13461356@defclass[text:input-box% (text:input-box-mixin text:standard-style-list%) ()]{}
1347- @defclass[text:keymap% (editor:keymap-mixin text:standard-style-list%) ()]{}
1357+ @defclass[text:keymap%
1358+ (text:overwrite-disable-mixin (editor:keymap-mixin text:standard-style-list%))
1359+ ()]{}
13481360@defclass[text:return% (text:return-mixin text:keymap%) ()]{}
13491361@defclass[text:autowrap% (editor:autowrap-mixin text:keymap%) ()]{}
13501362@defclass[text:file% (text:file-mixin (editor:file-mixin text:autowrap%)) ()]{}
Original file line number Diff line number Diff line change 200200 ports<%>
201201 input-box<%>
202202 autocomplete<%>
203+ overwrite-disable<%>
203204
204205 basic%
205206 line-spacing%
241242 crlf-line-endings-mixin
242243 ports-mixin
243244 input-box-mixin
244- autocomplete-mixin))
245+ autocomplete-mixin
246+ overwrite-disable-mixin))
245247 (define-signature text^ extends text-class^
246248 (autocomplete-append-after
247249 autocomplete-limit
Original file line number Diff line number Diff line change @@ -4549,6 +4549,24 @@ designates the character that triggers autocompletion
45494549 all-string-snips?]))
45504550
45514551 (super-new )))
4552+
4553+ (define overwrite-disable<%> (interface ()))
4554+ (define overwrite-disable-mixin
4555+ (mixin ((class->interface text%)) (overwrite-disable<%>)
4556+ (inherit set-overwrite-mode)
4557+
4558+ ;; private field held onto by the object
4559+ ;; because of the weak callback below
4560+ (define (overwrite-changed-callback p v)
4561+ (unless v
4562+ (set-overwrite-mode #f )))
4563+
4564+ (preferences:add-callback
4565+ 'framework:overwrite-mode-keybindings
4566+ overwrite-changed-callback
4567+ #t )
4568+
4569+ (super-new )))
45524570
45534571(define basic% (basic-mixin (editor:basic-mixin text%)))
45544572(define line-spacing% (line-spacing-mixin basic%))
@@ -4559,7 +4577,7 @@ designates the character that triggers autocompletion
45594577(define wide-snip% (wide-snip-mixin line-spacing%))
45604578(define standard-style-list% (editor:standard-style-list-mixin wide-snip%))
45614579(define input-box% (input-box-mixin standard-style-list%))
4562- (define -keymap% (editor:keymap-mixin standard-style-list%))
4580+ (define -keymap% (overwrite-disable-mixin ( editor:keymap-mixin standard-style-list%) ))
45634581(define return% (return-mixin -keymap%))
45644582(define autowrap% (editor:autowrap-mixin -keymap%))
45654583(define file% (file-mixin (editor:file-mixin autowrap%)))
You can’t perform that action at this time.
0 commit comments