/ gui-lib / framework / private / text-classes.rkt
text-classes.rkt
 1  #lang racket/base
 2  (require racket/unit
 3           mred/mred-sig
 4           "text-sig.rkt"
 5           "sig.rkt")
 6  
 7  (provide text-classes@)
 8  
 9  (define-unit text-classes@
10    (import mred^
11            text-basic^
12            text-misc^
13            text-normalize-paste^
14            text-delegate^
15            text-port^
16            text-search^
17            [prefix editor: framework:editor^])
18    (export (rename text-mixed-in-classes^ [-keymap% keymap%]))
19  
20    (init-depend framework:editor^
21                 text-basic^
22                 text-misc^
23                 text-normalize-paste^
24                 text-delegate^
25                 text-port^
26                 text-search^
27                 mred^)
28    
29    (define basic% (basic-mixin (editor:basic-mixin text%)))
30    (define line-spacing% (line-spacing-mixin basic%))
31    (define hide-caret/selection% (hide-caret/selection-mixin line-spacing%))
32    (define nbsp->space% (nbsp->space-mixin line-spacing%))
33    (define normalize-paste% (normalize-paste-mixin line-spacing%))
34    (define delegate% (delegate-mixin line-spacing%))
35    (define wide-snip% (wide-snip-mixin line-spacing%))
36    (define standard-style-list% (editor:standard-style-list-mixin wide-snip%))
37    (define input-box% (input-box-mixin standard-style-list%))
38    (define -keymap% (overwrite-disable-mixin (editor:keymap-mixin standard-style-list%)))
39    (define return% (return-mixin -keymap%))
40    (define autowrap% (editor:autowrap-mixin -keymap%))
41    (define file% (file-mixin (editor:file-mixin autowrap%)))
42    (define clever-file-format% (crlf-line-endings-mixin (clever-file-format-mixin file%)))
43    (define backup-autosave% (editor:backup-autosave-mixin clever-file-format%))
44    (define searching% (searching-mixin backup-autosave%))
45    (define info% (info-mixin (editor:info-mixin searching%))))