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 1
1
#lang scribble/doc
2
2
@(require scribble/manual scribble/extract)
3
- @(require (for-label framework))
4
- @(require (for-label scheme/gui))
3
+ @(require (for-label framework racket/gui))
5
4
@title{Text}
6
5
7
6
@definterface[text:basic<%> (editor:basic<%> text%)]{
1335
1334
}
1336
1335
}
1337
1336
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
+
1338
1348
@defclass[text:basic% (text:basic-mixin (editor:basic-mixin text%)) ()]{}
1339
1349
@defclass[text:line-spacing% (text:line-spacing-mixin text:basic%) ()]{}
1340
1350
@defclass[text:hide-caret/selection% (text:hide-caret/selection-mixin text:line-spacing%) ()]{}
1344
1354
@defclass[text:wide-snip% (text:wide-snip-mixin text:line-spacing%) ()]{}
1345
1355
@defclass[text:standard-style-list% (editor:standard-style-list-mixin text:wide-snip%) ()]{}
1346
1356
@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
+ ()]{}
1348
1360
@defclass[text:return% (text:return-mixin text:keymap%) ()]{}
1349
1361
@defclass[text:autowrap% (editor:autowrap-mixin text:keymap%) ()]{}
1350
1362
@defclass[text:file% (text:file-mixin (editor:file-mixin text:autowrap%)) ()]{}
Original file line number Diff line number Diff line change 200
200
ports<%>
201
201
input-box<%>
202
202
autocomplete<%>
203
+ overwrite-disable<%>
203
204
204
205
basic%
205
206
line-spacing%
241
242
crlf-line-endings-mixin
242
243
ports-mixin
243
244
input-box-mixin
244
- autocomplete-mixin))
245
+ autocomplete-mixin
246
+ overwrite-disable-mixin))
245
247
(define-signature text^ extends text-class^
246
248
(autocomplete-append-after
247
249
autocomplete-limit
Original file line number Diff line number Diff line change @@ -4549,6 +4549,24 @@ designates the character that triggers autocompletion
4549
4549
all-string-snips?]))
4550
4550
4551
4551
(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 )))
4552
4570
4553
4571
(define basic% (basic-mixin (editor:basic-mixin text%)))
4554
4572
(define line-spacing% (line-spacing-mixin basic%))
@@ -4559,7 +4577,7 @@ designates the character that triggers autocompletion
4559
4577
(define wide-snip% (wide-snip-mixin line-spacing%))
4560
4578
(define standard-style-list% (editor:standard-style-list-mixin wide-snip%))
4561
4579
(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%) ))
4563
4581
(define return% (return-mixin -keymap%))
4564
4582
(define autowrap% (editor:autowrap-mixin -keymap%))
4565
4583
(define file% (file-mixin (editor:file-mixin autowrap%)))
You can’t perform that action at this time.
0 commit comments