merged units branch

svn: r5033

original commit: 3459c3a58f1cdc52fbc916acf306b29408468912
This commit is contained in:
Eli Barzilay 2006-12-05 20:31:14 +00:00
parent 2508db4d99
commit 1703ee1e0d
33 changed files with 1422 additions and 1619 deletions

View File

@ -1,8 +1,9 @@
(module framework mzscheme
(require (lib "unitsig.ss")
(lib "mred.ss" "mred")
(require (lib "unit.ss")
(lib "mred-unit.ss" "mred")
(lib "mred-sig.ss" "mred")
(lib "mred.ss" "mred")
(lib "class.ss")
"test.ss"
@ -10,11 +11,38 @@
"decorated-editor-snip.ss"
"framework-unit.ss"
"framework-sig.ss"
"private/sig.ss"
(lib "contract.ss"))
(provide-signature-elements framework-class^)
(provide-signature-elements
(prefix application: framework:application-class^)
(prefix version: framework:version-class^)
(prefix color-model: framework:color-model-class^)
(prefix exn: framework:exn-class^)
(prefix mode: framework:mode-class^)
(prefix exit: framework:exit-class^)
(prefix menu: framework:menu-class^)
(prefix preferences: framework:preferences-class^)
(prefix number-snip: framework:number-snip-class^)
(prefix autosave: framework:autosave-class^)
(prefix path-utils: framework:path-utils-class^)
(prefix icon: framework:icon-class^)
(prefix keymap: framework:keymap-class^)
(prefix editor: framework:editor-class^)
(prefix pasteboard: framework:pasteboard-class^)
(prefix text: framework:text-class^)
(prefix color: framework:color-class^)
(prefix color-prefs: framework:color-prefs-class^)
(prefix comment-box: framework:comment-box-class^)
(prefix finder: framework:finder-class^)
(prefix group: framework:group-class^)
(prefix canvas: framework:canvas-class^)
(prefix panel: framework:panel-class^)
(prefix frame: framework:frame-class^)
(prefix handler: framework:handler-class^)
(prefix scheme: framework:scheme-class^)
(prefix main: framework:main-class^))
(provide (all-from "test.ss")
(all-from "gui-utils.ss")
@ -27,13 +55,15 @@
(syntax-case stx ()
[(_ (name contract docs ...) ...)
(syntax (provide/contract (name contract) ...))]))
(define-values/invoke-unit/sig
framework^
framework@
#f
mred^)
(define-compound-unit/infer framework+mred@
(import)
(export framework^)
(link standard-mred@ framework@))
(define-values/invoke-unit/infer framework+mred@)
(provide/contract/docs
(number-snip:make-repeating-decimal-snip

View File

@ -1,18 +1,14 @@
(module application mzscheme
(require (lib "unitsig.ss")
"sig.ss"
(lib "mred-sig.ss" "mred"))
(provide application@)
(define application@
(unit/sig framework:application^
(import)
(define current-app-name (make-parameter
"MrEd"
(λ (x)
(unless (string? x)
(error 'current-app-name
"the app name must be a string"))
x))))))
(module application (lib "a-unit.ss")
(require "sig.ss")
(import)
(export framework:application^)
(define current-app-name (make-parameter
"MrEd"
(λ (x)
(unless (string? x)
(error 'current-app-name
"the app name must be a string"))
x))))

View File

@ -1,29 +1,27 @@
(module autosave mzscheme
(require (lib "unitsig.ss")
(lib "class.ss")
(module autosave (lib "a-unit.ss")
(require (lib "class.ss")
(lib "file.ss")
"sig.ss"
"../gui-utils.ss"
(lib "mred-sig.ss" "mred")
(lib "mred.ss" "mred") ;; remove this!
(lib "list.ss")
(lib "string-constant.ss" "string-constants"))
(provide autosave@)
(lib "string-constant.ss" "string-constants")
(lib "unit.ss"))
(import mred^
[prefix exit: framework:exit^]
[prefix preferences: framework:preferences^]
[prefix frame: framework:frame^]
[prefix scheme: framework:scheme^]
[prefix editor: framework:editor^]
[prefix text: framework:text^]
[prefix finder: framework:finder^]
[prefix group: framework:group^])
(export framework:autosave^)
(define autosave@
(unit/sig framework:autosave^
(import mred^
[exit : framework:exit^]
[preferences : framework:preferences^]
[frame : framework:frame^]
[scheme : framework:scheme^]
[editor : framework:editor^]
[text : framework:text^]
[finder : framework:finder^]
[group : framework:group^])
(define autosavable<%>
(interface ()
do-autosave))
@ -316,4 +314,4 @@
(delete-file autosave-name)
(when tmp-name
(delete-file tmp-name))
orig-name))))))))
orig-name))))))

View File

@ -1,19 +1,15 @@
(module canvas mzscheme
(require (lib "unitsig.ss")
(lib "class.ss")
(module canvas (lib "a-unit.ss")
(require (lib "class.ss")
"sig.ss"
(lib "mred-sig.ss" "mred"))
(provide canvas@)
(import mred^
[prefix preferences: framework:preferences^]
[prefix frame: framework:frame^]
[prefix text: framework:text^])
(define canvas@
(unit/sig framework:canvas^
(import mred^
[preferences : framework:preferences^]
[frame : framework:frame^]
[text : framework:text^])
(rename [-color% color%])
(export (rename framework:canvas^
(-color% color%)))
(define basic<%> (interface ((class->interface editor-canvas%))))
(define basic-mixin
@ -182,4 +178,4 @@
(define -color% (color-mixin basic%))
(define info% (info-mixin basic%))
(define delegate% (delegate-mixin basic%))
(define wide-snip% (wide-snip-mixin basic%)))))
(define wide-snip% (wide-snip-mixin basic%)))

View File

@ -1,16 +1,11 @@
(module color-model mzscheme
(require (lib "unitsig.ss")
(lib "class.ss")
(module color-model (lib "a-unit.ss")
(require (lib "class.ss")
"sig.ss"
(lib "mred-sig.ss" "mred")
(lib "list.ss"))
(provide color-model@)
(define color-model@
(unit/sig framework:color-model^
(import)
(import)
(export framework:color-model^)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; matrix ops ;;;
@ -270,4 +265,4 @@
;; (print-struct #t)
;; (xyz->luv (make-xyz 95.0 100.0 141.0))
;; (xyz->luv (make-xyz 60.0 80.0 20.0))
)))
)

View File

@ -1,303 +1,296 @@
(module color-prefs mzscheme
(module color-prefs (lib "a-unit.ss")
(require (lib "class.ss")
(lib "unitsig.ss")
(lib "unit.ss")
(lib "etc.ss")
(lib "mred.ss" "mred")
(lib "string-constant.ss" "string-constants")
"sig.ss")
(provide color-prefs@)
(define sc-choose-color (string-constant syntax-coloring-choose-color))
(import [prefix preferences: framework:preferences^]
[prefix editor: framework:editor^]
[prefix panel: framework:panel^]
[prefix canvas: framework:canvas^])
(export framework:color-prefs^)
(init-depend framework:editor^)
(define color-prefs@
(unit/sig framework:color-prefs^
(import [preferences : framework:preferences^]
[editor : framework:editor^]
[panel : framework:panel^]
[canvas : framework:canvas^])
(define standard-style-list-text% (editor:standard-style-list-mixin text%))
;; build-color-selection-panel : (is-a?/c area-container<%>) symbol string string -> void
;; constructs a panel containg controls to configure the preferences panel.
;; BUG: style changes don't update the check boxes.
(define build-color-selection-panel
(opt-lambda (parent
pref-sym
style-name
example-text
[update-style-delta
(λ (func)
(let ([delta (preferences:get pref-sym)])
(func delta)
(preferences:set pref-sym delta)))])
(define hp (new horizontal-panel%
(parent parent)
(style '(border))
(stretchable-height #f)))
(define e (new (class standard-style-list-text%
(inherit change-style get-style-list)
(define/augment (after-insert pos offset)
(inner (void) after-insert pos offset)
(let ([style (send (get-style-list)
find-named-style
style-name)])
(change-style style pos (+ pos offset) #f)))
(super-new))))
(define c (new canvas:color%
(parent hp)
(editor e)
(style '(hide-hscroll
hide-vscroll))))
(define standard-style-list-text% (editor:standard-style-list-mixin text%))
(define (make-check name on off)
(let* ([c (λ (check command)
(if (send check get-value)
(update-style-delta on)
(update-style-delta off)))]
[check (make-object check-box% name hp c)])
check))
;; build-color-selection-panel : (is-a?/c area-container<%>) symbol string string -> void
;; constructs a panel containg controls to configure the preferences panel.
;; BUG: style changes don't update the check boxes.
(define build-color-selection-panel
(opt-lambda (parent
pref-sym
style-name
example-text
[update-style-delta
(λ (func)
(let ([delta (preferences:get pref-sym)])
(func delta)
(preferences:set pref-sym delta)))])
(define hp (new horizontal-panel%
(parent parent)
(style '(border))
(stretchable-height #f)))
(define e (new (class standard-style-list-text%
(inherit change-style get-style-list)
(define/augment (after-insert pos offset)
(inner (void) after-insert pos offset)
(let ([style (send (get-style-list)
find-named-style
style-name)])
(change-style style pos (+ pos offset) #f)))
(super-new))))
(define c (new canvas:color%
(parent hp)
(editor e)
(style '(hide-hscroll
hide-vscroll))))
(define (make-check name on off)
(let* ([c (λ (check command)
(if (send check get-value)
(update-style-delta on)
(update-style-delta off)))]
[check (make-object check-box% name hp c)])
check))
(define slant-check
(make-check (string-constant cs-italic)
(λ (delta)
(send delta set-style-on 'slant)
(send delta set-style-off 'base))
(λ (delta)
(send delta set-style-on 'base)
(send delta set-style-off 'slant))))
(define bold-check
(make-check (string-constant cs-bold)
(λ (delta)
(send delta set-weight-on 'bold)
(send delta set-weight-off 'base))
(λ (delta)
(send delta set-weight-on 'base)
(send delta set-weight-off 'bold))))
(define underline-check
(make-check (string-constant cs-underline)
(λ (delta)
(send delta set-underlined-on #t)
(send delta set-underlined-off #f))
(λ (delta)
(send delta set-underlined-off #t)
(send delta set-underlined-on #f))))
(define color-button
(and (>= (get-display-depth) 8)
(make-object button%
(string-constant cs-change-color)
hp
(λ (color-button evt)
(let* ([add (send (preferences:get pref-sym) get-foreground-add)]
[color (make-object color%
(send add get-r)
(send add get-g)
(send add get-b))]
[users-choice
(get-color-from-user
(format sc-choose-color example-text)
(send color-button get-top-level-window)
color)])
(when users-choice
(update-style-delta
(λ (delta)
(send delta set-delta-foreground users-choice)))))))))
(define style (send (send e get-style-list) find-named-style style-name))
(send c set-line-count 1)
(send c allow-tab-exit #t)
(send e insert example-text)
(send e set-position 0)
(send slant-check set-value (eq? (send style get-style) 'slant))
(send bold-check set-value (eq? (send style get-weight) 'bold))
(send underline-check set-value (send style get-underlined))))
(define slant-check
(make-check (string-constant cs-italic)
(λ (delta)
(send delta set-style-on 'slant)
(send delta set-style-off 'base))
(λ (delta)
(send delta set-style-on 'base)
(send delta set-style-off 'slant))))
(define bold-check
(make-check (string-constant cs-bold)
(λ (delta)
(send delta set-weight-on 'bold)
(send delta set-weight-off 'base))
(λ (delta)
(send delta set-weight-on 'base)
(send delta set-weight-off 'bold))))
(define underline-check
(make-check (string-constant cs-underline)
(λ (delta)
(send delta set-underlined-on #t)
(send delta set-underlined-off #f))
(λ (delta)
(send delta set-underlined-off #t)
(send delta set-underlined-on #f))))
(define color-button
(and (>= (get-display-depth) 8)
(make-object button%
(string-constant cs-change-color)
hp
(λ (color-button evt)
(let* ([add (send (preferences:get pref-sym) get-foreground-add)]
[color (make-object color%
(send add get-r)
(send add get-g)
(send add get-b))]
[users-choice
(get-color-from-user
(format (string-constant syntax-coloring-choose-color) example-text)
(send color-button get-top-level-window)
color)])
(when users-choice
(update-style-delta
(λ (delta)
(send delta set-delta-foreground users-choice)))))))))
(define style (send (send e get-style-list) find-named-style style-name))
(define (add/mult-set m v)
(send m set (car v) (cadr v) (caddr v)))
(send c set-line-count 1)
(send c allow-tab-exit #t)
(define (add/mult-get m)
(let ([b1 (box 0)]
[b2 (box 0)]
[b3 (box 0)])
(send m get b1 b2 b3)
(map unbox (list b1 b2 b3))))
(send e insert example-text)
(send e set-position 0)
(define style-delta-get/set
(list (cons (λ (x) (send x get-alignment-off))
(λ (x v) (send x set-alignment-off v)))
(cons (λ (x) (send x get-alignment-on))
(λ (x v) (send x set-alignment-on v)))
(cons (λ (x) (add/mult-get (send x get-background-add)))
(λ (x v) (add/mult-set (send x get-background-add) v)))
(cons (λ (x) (add/mult-get (send x get-background-mult)))
(λ (x v) (add/mult-set (send x get-background-mult) v)))
(cons (λ (x) (send x get-face))
(λ (x v) (send x set-face v)))
(cons (λ (x) (send x get-family))
(λ (x v) (send x set-family v)))
(cons (λ (x) (add/mult-get (send x get-foreground-add)))
(λ (x v) (add/mult-set (send x get-foreground-add) v)))
(cons (λ (x) (add/mult-get (send x get-foreground-mult)))
(λ (x v) (add/mult-set (send x get-foreground-mult) v)))
(cons (λ (x) (send x get-size-add))
(λ (x v) (send x set-size-add v)))
(cons (λ (x) (send x get-size-mult))
(λ (x v) (send x set-size-mult v)))
(cons (λ (x) (send x get-style-off))
(λ (x v) (send x set-style-off v)))
(cons (λ (x) (send x get-style-on))
(λ (x v) (send x set-style-on v)))
(cons (λ (x) (send x get-underlined-off))
(λ (x v) (send x set-underlined-off v)))
(cons (λ (x) (send x get-underlined-on))
(λ (x v) (send x set-underlined-on v)))
(cons (λ (x) (send x get-weight-off))
(λ (x v) (send x set-weight-off v)))
(cons (λ (x) (send x get-weight-on))
(λ (x v) (send x set-weight-on v)))))
(define (marshall-style style)
(map (λ (fs) ((car fs) style)) style-delta-get/set))
(define (unmarshall-style info)
(let ([style (make-object style-delta%)])
(for-each (λ (fs v) ((cdr fs) style v)) style-delta-get/set info)
style))
(define (make-style-delta color bold? underline? italic?)
(let ((sd (make-object style-delta%)))
(send sd set-delta-foreground color)
(cond
(bold?
(send sd set-weight-on 'bold)
(send sd set-weight-off 'base))
(else
(send sd set-weight-on 'base)
(send sd set-weight-off 'bold)))
(send sd set-underlined-on underline?)
(send sd set-underlined-off (not underline?))
(cond
(italic?
(send sd set-style-on 'italic)
(send sd set-style-off 'base))
(else
(send sd set-style-on 'base)
(send sd set-style-off 'italic)))
sd))
(define (add-background-preferences-panel)
(preferences:add-panel
(list (string-constant preferences-colors)
(string-constant background-color))
(λ (parent)
(let ([vp (new vertical-panel% (parent parent))])
(add-solid-color-config (string-constant background-color)
vp
'framework:basic-canvas-background)
(add-solid-color-config (string-constant paren-match-color)
vp
'framework:paren-match-color)
(build-text-foreground-selection-panel vp
'framework:default-text-color
(editor:get-default-color-style-name)
(string-constant default-text-color))))))
(define (build-text-foreground-selection-panel parent pref-sym style-name example-text)
(define hp (new horizontal-panel%
(parent parent)
(style '(border))
(stretchable-height #f)))
(define e (new (class standard-style-list-text%
(inherit change-style get-style-list)
(define/augment (after-insert pos offset)
(inner (void) after-insert pos offset)
(let ([style (send (get-style-list)
find-named-style
style-name)])
(change-style style pos (+ pos offset) #f)))
(super-new))))
(define c (new canvas:color%
(parent hp)
(editor e)
(style '(hide-hscroll
hide-vscroll))))
(define color-button
(and (>= (get-display-depth) 8)
(make-object button%
(string-constant cs-change-color)
hp
(λ (color-button evt)
(let ([users-choice
(get-color-from-user
(format sc-choose-color example-text)
(send color-button get-top-level-window)
(preferences:get pref-sym))])
(when users-choice
(preferences:set pref-sym users-choice)))))))
(define style (send (send e get-style-list) find-named-style style-name))
(send c set-line-count 1)
(send c allow-tab-exit #t)
(send e insert example-text)
(send e set-position 0))
(define (add-solid-color-config label parent pref-id)
(letrec ([panel (new vertical-panel% (parent parent) (stretchable-height #f))]
[hp (new horizontal-panel% (parent panel) (stretchable-height #f))]
[msg (new message% (parent hp) (label label))]
[canvas
(new canvas%
(parent hp)
(paint-callback
(λ (c dc)
(draw (preferences:get pref-id)))))]
[draw
(λ (clr)
(let ([dc (send canvas get-dc)])
(let-values ([(w h) (send canvas get-client-size)])
(send dc set-brush (send the-brush-list find-or-create-brush clr 'solid))
(send dc set-pen (send the-pen-list find-or-create-pen clr 1 'solid))
(send dc draw-rectangle 0 0 w h))))]
[button
(new button%
(label (string-constant cs-change-color))
(parent hp)
(callback
(λ (x y)
(let ([color (get-color-from-user
(string-constant choose-a-background-color)
(send hp get-top-level-window)
(preferences:get pref-id))])
(when color
(preferences:set pref-id color))))))])
(preferences:add-callback
pref-id
(λ (p v) (draw v)))
panel))
;; add-to-preferences-panel : string (vertical-panel -> void) -> void
(define (add-to-preferences-panel panel-name func)
(preferences:add-panel
(list (string-constant preferences-colors) panel-name)
(λ (parent)
(let ([panel (new vertical-panel% (parent parent))])
(func panel)
panel))))
;; see docs
(define (register-color-pref pref-name style-name color)
(let ([sd (new style-delta%)])
(send sd set-delta-foreground color)
(preferences:set-default pref-name sd (λ (x) (is-a? x style-delta%))))
(preferences:set-un/marshall pref-name marshall-style unmarshall-style)
(preferences:add-callback pref-name
(λ (sym v)
(editor:set-standard-style-list-delta style-name v)))
(editor:set-standard-style-list-delta style-name (preferences:get pref-name))))))
(send slant-check set-value (eq? (send style get-style) 'slant))
(send bold-check set-value (eq? (send style get-weight) 'bold))
(send underline-check set-value (send style get-underlined))))
(define (add/mult-set m v)
(send m set (car v) (cadr v) (caddr v)))
(define (add/mult-get m)
(let ([b1 (box 0)]
[b2 (box 0)]
[b3 (box 0)])
(send m get b1 b2 b3)
(map unbox (list b1 b2 b3))))
(define style-delta-get/set
(list (cons (λ (x) (send x get-alignment-off))
(λ (x v) (send x set-alignment-off v)))
(cons (λ (x) (send x get-alignment-on))
(λ (x v) (send x set-alignment-on v)))
(cons (λ (x) (add/mult-get (send x get-background-add)))
(λ (x v) (add/mult-set (send x get-background-add) v)))
(cons (λ (x) (add/mult-get (send x get-background-mult)))
(λ (x v) (add/mult-set (send x get-background-mult) v)))
(cons (λ (x) (send x get-face))
(λ (x v) (send x set-face v)))
(cons (λ (x) (send x get-family))
(λ (x v) (send x set-family v)))
(cons (λ (x) (add/mult-get (send x get-foreground-add)))
(λ (x v) (add/mult-set (send x get-foreground-add) v)))
(cons (λ (x) (add/mult-get (send x get-foreground-mult)))
(λ (x v) (add/mult-set (send x get-foreground-mult) v)))
(cons (λ (x) (send x get-size-add))
(λ (x v) (send x set-size-add v)))
(cons (λ (x) (send x get-size-mult))
(λ (x v) (send x set-size-mult v)))
(cons (λ (x) (send x get-style-off))
(λ (x v) (send x set-style-off v)))
(cons (λ (x) (send x get-style-on))
(λ (x v) (send x set-style-on v)))
(cons (λ (x) (send x get-underlined-off))
(λ (x v) (send x set-underlined-off v)))
(cons (λ (x) (send x get-underlined-on))
(λ (x v) (send x set-underlined-on v)))
(cons (λ (x) (send x get-weight-off))
(λ (x v) (send x set-weight-off v)))
(cons (λ (x) (send x get-weight-on))
(λ (x v) (send x set-weight-on v)))))
(define (marshall-style style)
(map (λ (fs) ((car fs) style)) style-delta-get/set))
(define (unmarshall-style info)
(let ([style (make-object style-delta%)])
(for-each (λ (fs v) ((cdr fs) style v)) style-delta-get/set info)
style))
(define (make-style-delta color bold? underline? italic?)
(let ((sd (make-object style-delta%)))
(send sd set-delta-foreground color)
(cond
(bold?
(send sd set-weight-on 'bold)
(send sd set-weight-off 'base))
(else
(send sd set-weight-on 'base)
(send sd set-weight-off 'bold)))
(send sd set-underlined-on underline?)
(send sd set-underlined-off (not underline?))
(cond
(italic?
(send sd set-style-on 'italic)
(send sd set-style-off 'base))
(else
(send sd set-style-on 'base)
(send sd set-style-off 'italic)))
sd))
(define (add-background-preferences-panel)
(preferences:add-panel
(list (string-constant preferences-colors)
(string-constant background-color))
(λ (parent)
(let ([vp (new vertical-panel% (parent parent))])
(add-solid-color-config (string-constant background-color)
vp
'framework:basic-canvas-background)
(add-solid-color-config (string-constant paren-match-color)
vp
'framework:paren-match-color)
(build-text-foreground-selection-panel vp
'framework:default-text-color
(editor:get-default-color-style-name)
(string-constant default-text-color))))))
(define (build-text-foreground-selection-panel parent pref-sym style-name example-text)
(define hp (new horizontal-panel%
(parent parent)
(style '(border))
(stretchable-height #f)))
(define e (new (class standard-style-list-text%
(inherit change-style get-style-list)
(define/augment (after-insert pos offset)
(inner (void) after-insert pos offset)
(let ([style (send (get-style-list)
find-named-style
style-name)])
(change-style style pos (+ pos offset) #f)))
(super-new))))
(define c (new canvas:color%
(parent hp)
(editor e)
(style '(hide-hscroll
hide-vscroll))))
(define color-button
(and (>= (get-display-depth) 8)
(make-object button%
(string-constant cs-change-color)
hp
(λ (color-button evt)
(let ([users-choice
(get-color-from-user
(format (string-constant syntax-coloring-choose-color) example-text)
(send color-button get-top-level-window)
(preferences:get pref-sym))])
(when users-choice
(preferences:set pref-sym users-choice)))))))
(define style (send (send e get-style-list) find-named-style style-name))
(send c set-line-count 1)
(send c allow-tab-exit #t)
(send e insert example-text)
(send e set-position 0))
(define (add-solid-color-config label parent pref-id)
(letrec ([panel (new vertical-panel% (parent parent) (stretchable-height #f))]
[hp (new horizontal-panel% (parent panel) (stretchable-height #f))]
[msg (new message% (parent hp) (label label))]
[canvas
(new canvas%
(parent hp)
(paint-callback
(λ (c dc)
(draw (preferences:get pref-id)))))]
[draw
(λ (clr)
(let ([dc (send canvas get-dc)])
(let-values ([(w h) (send canvas get-client-size)])
(send dc set-brush (send the-brush-list find-or-create-brush clr 'solid))
(send dc set-pen (send the-pen-list find-or-create-pen clr 1 'solid))
(send dc draw-rectangle 0 0 w h))))]
[button
(new button%
(label (string-constant cs-change-color))
(parent hp)
(callback
(λ (x y)
(let ([color (get-color-from-user
(string-constant choose-a-background-color)
(send hp get-top-level-window)
(preferences:get pref-id))])
(when color
(preferences:set pref-id color))))))])
(preferences:add-callback
pref-id
(λ (p v) (draw v)))
panel))
;; add-to-preferences-panel : string (vertical-panel -> void) -> void
(define (add-to-preferences-panel panel-name func)
(preferences:add-panel
(list (string-constant preferences-colors) panel-name)
(λ (parent)
(let ([panel (new vertical-panel% (parent parent))])
(func panel)
panel))))
;; see docs
(define (register-color-pref pref-name style-name color)
(let ([sd (new style-delta%)])
(send sd set-delta-foreground color)
(preferences:set-default pref-name sd (λ (x) (is-a? x style-delta%))))
(preferences:set-un/marshall pref-name marshall-style unmarshall-style)
(preferences:add-callback pref-name
(λ (sym v)
(editor:set-standard-style-list-delta style-name v)))
(editor:set-standard-style-list-delta style-name (preferences:get pref-name))))

File diff suppressed because it is too large Load Diff

View File

@ -1,24 +1,18 @@
(module comment-box mzscheme
(module comment-box (lib "a-unit.ss")
(require (lib "class.ss")
(lib "etc.ss")
(lib "mred.ss" "mred")
(lib "unitsig.ss")
"sig.ss"
"../decorated-editor-snip.ss"
(lib "include-bitmap.ss" "mrlib")
(lib "string-constant.ss" "string-constants"))
(provide comment-box@)
(define comment-box@
(unit/sig framework:comment-box^
(import [text : framework:text^]
[scheme : framework:scheme^]
[keymap : framework:keymap^])
(rename [-snip% snip%]
[-text% text%])
(import [prefix text: framework:text^]
[prefix scheme: framework:scheme^]
[prefix keymap: framework:keymap^])
(export (rename framework:comment-box^
(-snip% snip%)))
(define snipclass%
(class decorated-editor-snipclass%
@ -127,4 +121,4 @@
(make-special-comment "comment"))
(super-instantiate ())
(inherit set-snipclass)
(set-snipclass snipclass))))))
(set-snipclass snipclass))))

View File

@ -1,7 +1,6 @@
(module editor mzscheme
(require (lib "unitsig.ss")
(lib "class.ss")
(module editor (lib "a-unit.ss")
(require (lib "class.ss")
(lib "string-constant.ss" "string-constants")
"sig.ss"
"../gui-utils.ss"
@ -9,24 +8,21 @@
(lib "mred-sig.ss" "mred")
(lib "file.ss"))
(provide editor@)
(define editor@
(unit/sig framework:editor^
(import mred^
[autosave : framework:autosave^]
[finder : framework:finder^]
[path-utils : framework:path-utils^]
[keymap : framework:keymap^]
[icon : framework:icon^]
[preferences : framework:preferences^]
[text : framework:text^]
[pasteboard : framework:pasteboard^]
[frame : framework:frame^]
[handler : framework:handler^])
(rename [-keymap<%> keymap<%>])
(import mred^
[prefix autosave: framework:autosave^]
[prefix finder: framework:finder^]
[prefix path-utils: framework:path-utils^]
[prefix keymap: framework:keymap^]
[prefix icon: framework:icon^]
[prefix preferences: framework:preferences^]
[prefix text: framework:text^]
[prefix pasteboard: framework:pasteboard^]
[prefix frame: framework:frame^]
[prefix handler: framework:handler^])
(export (rename framework:editor^
[-keymap<%> keymap<%>]))
(init-depend mred^ framework:autosave^)
;; renaming, for editor-mixin where get-file is shadowed by a method.
(define mred:get-file get-file)
@ -600,4 +596,4 @@
(set! callback-running? #f))
#f))))
'framework:update-lock-icon))
(super-instantiate ()))))))
(super-instantiate ()))))

View File

@ -1,6 +1,5 @@
(module exit mzscheme
(require (lib "unitsig.ss")
(lib "string-constant.ss" "string-constants")
(module exit (lib "a-unit.ss")
(require (lib "string-constant.ss" "string-constants")
(lib "class.ss")
"sig.ss"
"../gui-utils.ss"
@ -8,13 +7,10 @@
(lib "file.ss")
(lib "etc.ss"))
(provide exit@)
(define exit@
(unit/sig framework:exit^
(import mred^
[preferences : framework:preferences^])
(rename (-exit exit))
(import mred^
[prefix preferences: framework:preferences^])
(export (rename framework:exit^
(-exit exit)))
(define can?-callbacks '())
(define on-callbacks '())
@ -79,4 +75,4 @@
(exit)
(set! is-exiting? #f)))]
[else
(set! is-exiting? #f)])))))
(set! is-exiting? #f)])))

View File

@ -1,7 +1,6 @@
(module finder mzscheme
(module finder (lib "a-unit.ss")
(require (lib "string-constant.ss" "string-constants")
(lib "unitsig.ss")
"sig.ss"
"../gui-utils.ss"
(lib "class.ss")
@ -11,16 +10,14 @@
(lib "file.ss")
(lib "etc.ss"))
(provide finder@)
(define finder@
(unit/sig framework:finder^
(import mred^
[preferences : framework:preferences^]
[keymap : framework:keymap^])
(import mred^
[prefix preferences: framework:preferences^]
[prefix keymap: framework:keymap^])
(rename [-put-file put-file]
[-get-file get-file])
(export (rename framework:finder^
[-put-file put-file]
[-get-file get-file]))
(define dialog-parent-parameter (make-parameter #f))
@ -106,4 +103,4 @@
(apply (case (preferences:get 'framework:file-dialogs)
[(std) std-get-file]
[(common) common-get-file])
args))))))
args))))

View File

@ -1,7 +1,6 @@
(module frame mzscheme
(module frame (lib "a-unit.ss")
(require (lib "string-constant.ss" "string-constants")
(lib "unitsig.ss")
(lib "class.ss")
(lib "include.ss")
"sig.ss"
@ -12,32 +11,31 @@
(lib "file.ss")
(lib "etc.ss"))
(provide frame@)
(import mred^
[prefix group: framework:group^]
[prefix preferences: framework:preferences^]
[prefix icon: framework:icon^]
[prefix handler: framework:handler^]
[prefix application: framework:application^]
[prefix panel: framework:panel^]
[prefix finder: framework:finder^]
[prefix keymap: framework:keymap^]
[prefix text: framework:text^]
[prefix pasteboard: framework:pasteboard^]
[prefix editor: framework:editor^]
[prefix canvas: framework:canvas^]
[prefix menu: framework:menu^]
[prefix scheme: framework:scheme^]
[prefix exit: framework:exit^]
[prefix comment-box: framework:comment-box^])
(define frame@
(unit/sig framework:frame^
(import mred^
[group : framework:group^]
[preferences : framework:preferences^]
[icon : framework:icon^]
[handler : framework:handler^]
[application : framework:application^]
[panel : framework:panel^]
[finder : framework:finder^]
[keymap : framework:keymap^]
[text : framework:text^]
[pasteboard : framework:pasteboard^]
[editor : framework:editor^]
[canvas : framework:canvas^]
[menu : framework:menu^]
[scheme : framework:scheme^]
[exit : framework:exit^]
[comment-box : framework:comment-box^])
(rename [-editor<%> editor<%>]
[-pasteboard% pasteboard%]
[-text% text%])
(export (rename framework:frame^
[-editor<%> editor<%>]
[-pasteboard% pasteboard%]
[-text% text%]))
(init-depend mred^ framework:text^)
(define (reorder-menus frame)
(define items (send (send frame get-menu-bar) get-items))
(define (find-menu name)
@ -2374,4 +2372,4 @@
(define searchable% (searchable-text-mixin (searchable-mixin -text%)))
(define delegate% (delegate-mixin searchable%))
(define -pasteboard% (pasteboard-mixin open-here%)))))
(define -pasteboard% (pasteboard-mixin open-here%)))

View File

@ -1,25 +1,21 @@
(module group mzscheme
(module group (lib "a-unit.ss")
(require (lib "string-constant.ss" "string-constants")
(lib "unitsig.ss")
(lib "class.ss")
"sig.ss"
"../gui-utils.ss"
(lib "mred-sig.ss" "mred")
(lib "list.ss")
(lib "file.ss"))
(provide group@)
(define group@
(unit/sig framework:group^
(import mred^
[application : framework:application^]
[frame : framework:frame^]
[preferences : framework:preferences^]
[text : framework:text^]
[canvas : framework:canvas^]
[menu : framework:menu^])
(import mred^
[prefix application: framework:application^]
[prefix frame: framework:frame^]
[prefix preferences: framework:preferences^]
[prefix text: framework:text^]
[prefix canvas: framework:canvas^]
[prefix menu: framework:menu^])
(export framework:group^)
(define-struct frame (frame id))
@ -322,4 +318,4 @@
(internal-get-the-frame-group)))
(define (get-the-frame-group)
(internal-get-the-frame-group)))))
(internal-get-the-frame-group)))

View File

@ -1,7 +1,6 @@
(module handler mzscheme
(require (lib "unitsig.ss")
(lib "class.ss")
(module handler (lib "a-unit.ss")
(require (lib "class.ss")
(lib "list.ss")
(lib "hierlist.ss" "hierlist")
"sig.ss"
@ -10,17 +9,16 @@
(lib "file.ss")
(lib "string-constant.ss" "string-constants"))
(provide handler@)
(define handler@
(unit/sig framework:handler^
(import mred^
[finder : framework:finder^]
[group : framework:group^]
[text : framework:text^]
[preferences : framework:preferences^]
[frame : framework:frame^])
(import mred^
[prefix finder: framework:finder^]
[prefix group: framework:group^]
[prefix text: framework:text^]
[prefix preferences: framework:preferences^]
[prefix frame: framework:frame^])
(export framework:handler^)
(init-depend framework:frame^)
(define-struct handler (name extension handler))
(define format-handlers '())
@ -392,4 +390,4 @@
(send *open-directory*
set-from-file! file))
(and file
(edit-file file))))))))
(edit-file file))))))

View File

@ -1,17 +1,13 @@
(module icon mzscheme
(require (lib "unitsig.ss")
(lib "class.ss")
(module icon (lib "a-unit.ss")
(require (lib "class.ss")
(lib "include-bitmap.ss" "mrlib")
"bday.ss"
"sig.ss"
(lib "mred-sig.ss" "mred"))
(import mred^)
(export framework:icon^)
(provide icon@)
(define icon@
(unit/sig framework:icon^
(import mred^)
(define eof-bitmap (delay (include-bitmap (lib "eof.gif" "icons"))))
(define (get-eof-bitmap) (force eof-bitmap))
@ -73,4 +69,4 @@
(force
(if (mrf-bday?)
mrf-off-bitmap
gc-off-bitmap))))))
gc-off-bitmap))))

View File

@ -1,26 +1,23 @@
(module keymap mzscheme
(module keymap (lib "a-unit.ss")
(require (lib "string-constant.ss" "string-constants")
(lib "unitsig.ss")
(lib "class.ss")
(lib "list.ss")
(lib "mred-sig.ss" "mred")
(lib "match.ss")
"sig.ss")
(provide keymap@)
(import mred^
[prefix preferences: framework:preferences^]
[prefix finder: framework:finder^]
[prefix handler: framework:handler^]
[prefix frame: framework:frame^]
[prefix editor: framework:editor^])
(export (rename framework:keymap^
[-get-file get-file]))
(init-depend mred^)
(define keymap@
(unit/sig framework:keymap^
(import mred^
[preferences : framework:preferences^]
[finder : framework:finder^]
[handler : framework:handler^]
[frame : framework:frame^]
[editor : framework:editor^])
(rename [-get-file get-file])
(define user-keybindings-files (make-hash-table 'equal))
(define (add-user-keybindings-file spec)
@ -1342,4 +1339,4 @@
(λ (keymap)
(send keymap chain-to-keymap global #t)
(ctki keymap))])
(thunk)))))))
(thunk)))))

View File

@ -1,24 +1,22 @@
(module main mzscheme
(require (lib "unitsig.ss")
(lib "class.ss")
(module main (lib "a-unit.ss")
(require (lib "class.ss")
"sig.ss"
"../gui-utils.ss"
(lib "string-constant.ss" "string-constants")
(lib "mred-sig.ss" "mred"))
(provide main@)
(import mred^
[prefix preferences: framework:preferences^]
[prefix exit: framework:exit^]
[prefix group: framework:group^]
[prefix handler: framework:handler^]
[prefix editor: framework:editor^]
[prefix color-prefs: framework:color-prefs^]
[prefix scheme: framework:scheme^])
(export framework:main^)
(init-depend framework:preferences^ framework:exit^ framework:editor^
framework:color-prefs^ framework:scheme^)
(define main@
(unit/sig framework:main^
(import mred^
[preferences : framework:preferences^]
[exit : framework:exit^]
[group : framework:group^]
[handler : framework:handler^]
[editor : framework:editor^]
[color-prefs : framework:color-prefs^]
[scheme : framework:scheme^])
(application-preferences-handler (λ () (preferences:show-dialog)))
(preferences:set-default 'framework:square-bracket:cond/offset
@ -319,4 +317,4 @@
;; the application.
;(preferences:set 'framework:file-dialogs 'std)
(void))))
(void))

View File

@ -1,15 +1,11 @@
(module menu mzscheme
(require (lib "unitsig.ss")
(lib "class.ss")
(module menu (lib "a-unit.ss")
(require (lib "class.ss")
"sig.ss"
(lib "mred-sig.ss" "mred"))
(provide menu@)
(define menu@
(unit/sig framework:menu^
(import mred^
[preferences : framework:preferences^])
(import mred^
[prefix preferences: framework:preferences^])
(export framework:menu^)
(define can-restore<%>
(interface (selectable-menu-item<%>)
@ -49,4 +45,4 @@
(define can-restore-menu-item% (can-restore-mixin menu-item%))
(define can-restore-checkable-menu-item% (can-restore-mixin checkable-menu-item%))
(define can-restore-underscore-menu% (can-restore-underscore-mixin menu%)))))
(define can-restore-underscore-menu% (can-restore-underscore-mixin menu%)))

View File

@ -1,14 +1,10 @@
(module mode mzscheme
(module mode (lib "a-unit.ss")
(require (lib "surrogate.ss")
(lib "unitsig.ss")
(lib "class.ss")
"sig.ss")
(provide mode@)
(define mode@
(unit/sig framework:mode^
(import)
(import)
(export framework:mode^)
(define-values (host-text-mixin host-text<%> surrogate-text% surrogate-text<%>)
(surrogate
@ -51,4 +47,4 @@
(augment #t can-set-size-constraint? ())
(override can-do-edit-operation? (op) (op recursive?))
(augment #t can-load-file? (filename format))
(augment #t can-save-file? (filename format)))))))
(augment #t can-save-file? (filename format)))))

View File

@ -1,18 +1,15 @@
(module number-snip mzscheme
(require (lib "unitsig.ss")
"sig.ss"
(module number-snip (lib "a-unit.ss")
(require "sig.ss"
(lib "mred-sig.ss" "mred")
(lib "class.ss")
(lib "string-constant.ss" "string-constants"))
(provide number-snip@)
(define number-snip@
(unit/sig framework:number-snip^
(import mred^
[preferences : framework:preferences^])
(rename [-snip-class% snip-class%])
(import mred^
[prefix preferences: framework:preferences^])
(export (rename framework:number-snip^
[-snip-class% snip-class%]))
(init-depend mred^)
;; make-repeating-decimal-snip : number boolean -> snip
(define (make-repeating-decimal-snip number e-prefix?)
@ -518,4 +515,4 @@
(define (hash-table-bound? ht key)
(let/ec k
(hash-table-get ht key (λ () (k #f)))
#t)))))
#t)))

View File

@ -1,18 +1,15 @@
(module panel mzscheme
(require (lib "unitsig.ss")
(lib "class.ss")
(module panel (lib "a-unit.ss")
(require (lib "class.ss")
"sig.ss"
(lib "mred-sig.ss" "mred")
(lib "list.ss")
(lib "etc.ss"))
(provide panel@)
(define panel@
(unit/sig framework:panel^
(import [icon : framework:icon^]
mred^)
(import [prefix icon: framework:icon^]
mred^)
(export framework:panel^)
(init-depend mred^)
(define single<%> (interface (area-container<%>) active-child))
(define single-mixin
@ -422,5 +419,5 @@
(define vertical-dragable% (vertical-dragable-mixin (dragable-mixin vertical-panel%)))
(define horizontal-dragable% (horizontal-dragable-mixin (dragable-mixin horizontal-panel%))))))
(define horizontal-dragable% (horizontal-dragable-mixin (dragable-mixin horizontal-panel%))))

View File

@ -1,20 +1,17 @@
(module pasteboard mzscheme
(require (lib "unitsig.ss")
"sig.ss"
(module pasteboard (lib "a-unit.ss")
(require "sig.ss"
(lib "mred-sig.ss" "mred"))
(provide pasteboard@)
(define pasteboard@
(unit/sig framework:pasteboard^
(import mred^
[editor : framework:editor^])
(rename [-keymap% keymap%])
(import mred^
[prefix editor: framework:editor^])
(export (rename framework:pasteboard^
[-keymap% keymap%]))
(init-depend mred^ framework:editor^)
(define basic% (editor:basic-mixin pasteboard%))
(define standard-style-list% (editor:standard-style-list-mixin basic%))
(define -keymap% (editor:keymap-mixin standard-style-list%))
(define file% (editor:file-mixin -keymap%))
(define backup-autosave% (editor:backup-autosave-mixin file%))
(define info% (editor:info-mixin backup-autosave%)))))
(define info% (editor:info-mixin backup-autosave%)))

View File

@ -1,13 +1,9 @@
(module path-utils mzscheme
(require (lib "unitsig.ss")
"sig.ss"
(module path-utils (lib "a-unit.ss")
(require "sig.ss"
(lib "mred-sig.ss" "mred"))
(provide path-utils@)
(define path-utils@
(unit/sig framework:path-utils^
(import)
(import)
(export framework:path-utils^)
(define (generate-autosave-name name)
(let-values ([(base name dir?)
@ -58,5 +54,5 @@
[(eq? (system-type) 'windows)
(build-path base (bytes->path-element (bytes-append name-bytes #".bak")))]
[else
(build-path base (bytes->path-element (bytes-append name-bytes #"~")))]))))))))
(build-path base (bytes->path-element (bytes-append name-bytes #"~")))]))))))

View File

@ -40,9 +40,8 @@ for the last one, need a global "no more initialization can happen" flag.
|#
(module preferences mzscheme
(module preferences (lib "a-unit.ss")
(require (lib "string-constant.ss" "string-constants")
(lib "unitsig.ss")
(lib "class.ss")
(lib "file.ss")
(lib "etc.ss")
@ -52,16 +51,13 @@ for the last one, need a global "no more initialization can happen" flag.
(lib "pretty.ss")
(lib "list.ss"))
(provide preferences@)
(define preferences@
(unit/sig framework:preferences^
(import mred^
[exn : framework:exn^]
[exit : framework:exit^]
[panel : framework:panel^]
[frame : framework:frame^])
(rename [-read read])
(import mred^
[prefix exn: framework:exn^]
[prefix exit: framework:exit^]
[prefix panel: framework:panel^]
[prefix frame: framework:frame^])
(export framework:preferences^)
(define main-preferences-symbol 'plt:framework-prefs)
@ -922,4 +918,4 @@ for the last one, need a global "no more initialization can happen" flag.
(define (add-font-panel) (local-add-font-panel))
(-read))))
(-read))

View File

@ -1,10 +1,9 @@
;; originally by Dan Grossman
;; 6/30/95
(module scheme mzscheme
(module scheme (lib "a-unit.ss")
(require "collapsed-snipclass-helpers.ss"
(lib "string-constant.ss" "string-constants")
(lib "unitsig.ss")
(lib "class.ss")
"sig.ss"
(lib "mred-sig.ss" "mred")
@ -16,31 +15,31 @@
(lib "scheme-lexer.ss" "syntax-color")
"../gui-utils.ss")
(provide scheme@)
(define (scheme-paren:get-paren-pairs)
'(("(" . ")")
("[" . "]")
("{" . "}")))
(define scheme@
(unit/sig framework:scheme^
(import mred^
[preferences : framework:preferences^]
[icon : framework:icon^]
[keymap : framework:keymap^]
[text : framework:text^]
[editor : framework:editor^]
[frame : framework:frame^]
[comment-box : framework:comment-box^]
[mode : framework:mode^]
[color : framework:color^]
[color-prefs : framework:color-prefs^])
(import mred^
[prefix preferences: framework:preferences^]
[prefix icon: framework:icon^]
[prefix keymap: framework:keymap^]
[prefix text: framework:text^]
[prefix editor: framework:editor^]
[prefix frame: framework:frame^]
[prefix comment-box: framework:comment-box^]
[prefix mode: framework:mode^]
[prefix color: framework:color^]
[prefix color-prefs: framework:color-prefs^])
(rename [-text-mode<%> text-mode<%>]
[-text<%> text<%>]
[-text% text%])
(export (rename framework:scheme^
[-text-mode<%> text-mode<%>]
[-text<%> text<%>]
[-text% text%]))
(init-depend mred^ framework:keymap^ framework:color^ framework:mode^
framework:text^ framework:editor^)
(define (scheme-paren:get-paren-pairs)
'(("(" . ")")
("[" . "]")
("{" . "}")))
(define text-balanced?
(opt-lambda (text [start 0] [in-end #f])
@ -1651,4 +1650,5 @@
(preferences:add-callback 'framework:tabify (λ (p v) (update-gui v)))
main-panel)
)))
)

View File

@ -1,107 +1,21 @@
(module sig mzscheme
(require (lib "unitsig.ss"))
(require (lib "unit.ss"))
(provide framework:menu^
framework:menu-class^
framework:menu-fun^
framework:version^
framework:version-class^
framework:version-fun^
framework:panel^
framework:panel-class^
framework:panel-fun^
framework:exn^
framework:exn-class^
framework:exn-fun^
framework:application^
framework:application-class^
framework:application-fun^
framework:preferences^
framework:preferences-class^
framework:preferences-fun^
framework:autosave^
framework:autosave-class^
framework:autosave-fun^
framework:exit^
framework:exit-class^
framework:exit-fun^
framework:path-utils^
framework:path-utils-class^
framework:path-utils-fun^
framework:finder^
framework:finder-class^
framework:finder-fun^
framework:editor^
framework:editor-class^
framework:editor-fun^
framework:pasteboard^
framework:pasteboard-class^
framework:pasteboard-fun^
framework:text^
framework:text-class^
framework:text-fun^
framework:canvas^
framework:canvas-class^
framework:canvas-fun^
framework:frame^
framework:frame-class^
framework:frame-fun^
framework:group^
framework:group-class^
framework:group-fun^
framework:handler^
framework:handler-class^
framework:handler-fun^
framework:icon^
framework:icon-class^
framework:icon-fun^
framework:keymap^
framework:keymap-class^
framework:keymap-fun^
framework:color^
framework:color-class^
framework:color-fun^
framework:color-prefs^
framework:color-prefs-class^
framework:color-prefs-fun^
framework:scheme^
framework:scheme-class^
framework:scheme-fun^
framework:main^
framework:main-class^
framework:main-fun^
framework:mode^
framework:mode-class^
framework:mode-fun^
framework:color-model^
framework:color-model-class^
framework:color-model-fun^
framework:comment-box-fun^
framework:comment-box-class^
framework:comment-box^
framework:number-snip^
framework:number-snip-fun^
framework:number-snip-class^)
(define-signature framework:number-snip-fun^
(provide (prefix-all-defined-except framework: framework^)
framework^)
(define-signature number-snip-class^
(snip-class%))
(define-signature number-snip^ extends number-snip-class^
(make-repeating-decimal-snip
make-fraction-snip))
(define-signature framework:number-snip-class^
(snip-class%))
(define-signature framework:number-snip^
((open framework:number-snip-fun^)
(open framework:number-snip-class^)))
(define-signature framework:comment-box-fun^
())
(define-signature framework:comment-box-class^
(define-signature comment-box-class^
(snipclass snip%))
(define-signature framework:comment-box^
((open framework:comment-box-fun^)
(open framework:comment-box-class^)))
(define-signature framework:menu-class^
(define-signature comment-box^ extends comment-box-class^
())
(define-signature menu-class^
(can-restore<%>
can-restore-mixin
can-restore-underscore<%>
@ -109,22 +23,16 @@
can-restore-menu-item%
can-restore-checkable-menu-item%
can-restore-underscore-menu%))
(define-signature framework:menu-fun^
(define-signature menu^ extends menu-class^
())
(define-signature framework:menu^
((open framework:menu-class^)
(open framework:menu-fun^)))
(define-signature framework:version-class^
(define-signature version-class^
())
(define-signature framework:version-fun^
(define-signature version^ extends version-class^
(add-spec
version))
(define-signature framework:version^
((open framework:version-class^)
(open framework:version-fun^)))
(define-signature framework:panel-class^
(define-signature panel-class^
(single-mixin
single<%>
@ -149,32 +57,23 @@
horizontal-dragable<%>
horizontal-dragable-mixin
horizontal-dragable%))
(define-signature framework:panel-fun^
(define-signature panel^ extends panel-class^
())
(define-signature framework:panel^
((open framework:panel-class^)
(open framework:panel-fun^)))
(define-signature framework:exn-class^
(define-signature exn-class^
())
(define-signature framework:exn-fun^
(define-signature exn^ extends exn-class^
((struct exn ())
(struct unknown-preference ())))
(define-signature framework:exn^
((open framework:exn-class^)
(open framework:exn-fun^)))
(define-signature framework:application-class^
(define-signature application-class^
())
(define-signature framework:application-fun^
(define-signature application^ extends application-class^
(current-app-name))
(define-signature framework:application^
((open framework:application-class^)
(open framework:application-fun^)))
(define-signature framework:preferences-class^
(define-signature preferences-class^
())
(define-signature framework:preferences-fun^
(define-signature preferences^ extends preferences-class^
(get
add-callback
set
@ -201,22 +100,16 @@
show-dialog
hide-dialog))
(define-signature framework:preferences^
((open framework:preferences-class^)
(open framework:preferences-fun^)))
(define-signature framework:autosave-class^
(define-signature autosave-class^
(autosavable<%>))
(define-signature framework:autosave-fun^
(define-signature autosave^ extends autosave-class^
(register
restore-autosave-files/gui))
(define-signature framework:autosave^
((open framework:autosave-class^)
(open framework:autosave-fun^)))
(define-signature framework:exit-class^
(define-signature exit-class^
())
(define-signature framework:exit-fun^
(define-signature exit^ extends exit-class^
(set-exiting
exiting?
user-oks-exit
@ -225,22 +118,16 @@
can-exit?
on-exit
exit))
(define-signature framework:exit^
((open framework:exit-class^)
(open framework:exit-fun^)))
(define-signature framework:path-utils-class^
(define-signature path-utils-class^
())
(define-signature framework:path-utils-fun^
(define-signature path-utils^ extends path-utils-class^
(generate-autosave-name
generate-backup-name))
(define-signature framework:path-utils^
((open framework:path-utils-class^)
(open framework:path-utils-fun^)))
(define-signature framework:finder-class^
(define-signature finder-class^
())
(define-signature framework:finder-fun^
(define-signature finder^ extends finder-class^
(dialog-parent-parameter
default-extension
default-filters
@ -251,11 +138,8 @@
common-get-file-list
get-file
put-file))
(define-signature framework:finder^
((open framework:finder-class^)
(open framework:finder-fun^)))
(define-signature framework:editor-class^
(define-signature editor-class^
(basic<%>
standard-style-list<%>
keymap<%>
@ -270,30 +154,24 @@
info-mixin
file-mixin
backup-autosave-mixin))
(define-signature framework:editor-fun^
(define-signature editor^ extends editor-class^
(get-standard-style-list
set-standard-style-list-pref-callbacks
set-standard-style-list-delta
set-default-font-color
get-default-color-style-name))
(define-signature framework:editor^
((open framework:editor-class^)
(open framework:editor-fun^)))
(define-signature framework:pasteboard-class^
(define-signature pasteboard-class^
(basic%
standard-style-list%
keymap%
file%
backup-autosave%
info%))
(define-signature framework:pasteboard-fun^
(define-signature pasteboard^ extends pasteboard-class^
())
(define-signature framework:pasteboard^
((open framework:pasteboard-class^)
(open framework:pasteboard-fun^)))
(define-signature framework:text-class^
(define-signature text-class^
(basic<%>
foreground-color<%>
hide-caret/selection<%>
@ -339,13 +217,10 @@
clever-file-format-mixin
ports-mixin
input-box-mixin))
(define-signature framework:text-fun^
(define-signature text^ extends text-class^
())
(define-signature framework:text^
((open framework:text-class^)
(open framework:text-fun^)))
(define-signature framework:canvas-class^
(define-signature canvas-class^
(basic<%>
color<%>
delegate<%>
@ -363,13 +238,10 @@
delegate-mixin
info-mixin
wide-snip-mixin))
(define-signature framework:canvas-fun^
(define-signature canvas^ extends canvas-class^
())
(define-signature framework:canvas^
((open framework:canvas-class^)
(open framework:canvas-fun^)))
(define-signature framework:frame-class^
(define-signature frame-class^
(basic<%>
size-pref<%>
register-group<%>
@ -415,26 +287,20 @@
info-mixin
text-info-mixin
pasteboard-info-mixin))
(define-signature framework:frame-fun^
(define-signature frame^ extends frame-class^
(reorder-menus
remove-empty-menus
add-snip-menu-items
setup-size-pref))
(define-signature framework:frame^
((open framework:frame-class^)
(open framework:frame-fun^)))
(define-signature framework:group-class^
(define-signature group-class^
(%))
(define-signature framework:group-fun^
(define-signature group^ extends group-class^
(get-the-frame-group))
(define-signature framework:group^
((open framework:group-class^)
(open framework:group-fun^)))
(define-signature framework:handler-class^
(define-signature handler-class^
())
(define-signature framework:handler-fun^
(define-signature handler^ extends handler-class^
(handler?
handler-name
handler-extension
@ -450,13 +316,10 @@
set-recent-position
set-recent-items-frame-superclass
size-recently-opened-files))
(define-signature framework:handler^
((open framework:handler-class^)
(open framework:handler-fun^)))
(define-signature framework:icon-class^
(define-signature icon-class^
())
(define-signature framework:icon-fun^
(define-signature icon^ extends icon-class^
(get-paren-highlight-bitmap
get-autowrap-bitmap
get-eof-bitmap
@ -470,15 +333,12 @@
get-gc-on-bitmap
get-gc-off-bitmap))
(define-signature framework:icon^
((open framework:icon-class^)
(open framework:icon-fun^)))
(define-signature framework:keymap-class^
(define-signature keymap-class^
(aug-keymap%
aug-keymap<%>
aug-keymap-mixin))
(define-signature framework:keymap-fun^
(define-signature keymap^ extends keymap-class^
(send-map-function-meta
make-meta-prefix-list
@ -504,11 +364,8 @@
add-user-keybindings-file
remove-user-keybindings-file))
(define-signature framework:keymap^
((open framework:keymap-class^)
(open framework:keymap-fun^)))
(define-signature framework:color-class^
(define-signature color-class^
(text<%>
text-mixin
text%
@ -516,27 +373,20 @@
text-mode<%>
text-mode-mixin
text-mode%))
(define-signature framework:color-fun^
(define-signature color^ extends color-class^
())
(define-signature framework:color^
((open framework:color-class^)
(open framework:color-fun^)))
(define-signature framework:color-prefs-class^
(define-signature color-prefs-class^
())
(define-signature framework:color-prefs-fun^
(define-signature color-prefs^ extends color-prefs-class^
(register-color-pref
add-to-preferences-panel
build-color-selection-panel
add-background-preferences-panel
marshall-style
unmarshall-style))
(define-signature framework:color-prefs^
((open framework:color-prefs-class^)
(open framework:color-prefs-fun^)))
unmarshall-style))
(define-signature framework:scheme-class^
(define-signature scheme-class^
(text<%>
text-mixin
text%
@ -549,7 +399,7 @@
sexp-snip%
sexp-snip<%>))
(define-signature framework:scheme-fun^
(define-signature scheme^ extends scheme-class^
(get-wordbreak-map
init-wordbreak-map
get-keymap
@ -562,29 +412,20 @@
short-sym->style-name
text-balanced?))
(define-signature framework:scheme^
((open framework:scheme-class^)
(open framework:scheme-fun^)))
(define-signature framework:main-class^ ())
(define-signature framework:main-fun^ ())
(define-signature framework:main^
((open framework:main-class^)
(open framework:main-fun^)))
(define-signature main-class^ ())
(define-signature main^ extends main-class^ ())
(define-signature framework:mode-class^
(define-signature mode-class^
(host-text-mixin
host-text<%>
surrogate-text%
surrogate-text<%>))
(define-signature framework:mode-fun^ ())
(define-signature framework:mode^
((open framework:mode-class^)
(open framework:mode-fun^)))
(define-signature mode^ extends mode-class^ ())
(define-signature framework:color-model-class^
(define-signature color-model-class^
())
(define-signature framework:color-model-fun^
(define-signature color-model^ extends color-model-class^
(xyz?
xyz-x
xyz-y
@ -592,6 +433,33 @@
rgb-color-distance
rgb->xyz
xyz->rgb))
(define-signature framework:color-model^
((open framework:color-model-class^)
(open framework:color-model-fun^))))
(define-signature framework^
((open (prefix application: application^))
(open (prefix version: version^))
(open (prefix color-model: color-model^))
(open (prefix exn: exn^))
(open (prefix mode: mode^))
(open (prefix exit: exit^))
(open (prefix menu: menu^))
(open (prefix preferences: preferences^))
(open (prefix number-snip: number-snip^))
(open (prefix autosave: autosave^))
(open (prefix path-utils: path-utils^))
(open (prefix icon: icon^))
(open (prefix keymap: keymap^))
(open (prefix editor: editor^))
(open (prefix pasteboard: pasteboard^))
(open (prefix text: text^))
(open (prefix color: color^))
(open (prefix color-prefs: color-prefs^))
(open (prefix comment-box: comment-box^))
(open (prefix finder: finder^))
(open (prefix group: group^))
(open (prefix canvas: canvas^))
(open (prefix panel: panel^))
(open (prefix frame: frame^))
(open (prefix handler: handler^))
(open (prefix scheme: scheme^))
(open (prefix main: main^)))))

View File

@ -5,9 +5,8 @@ WARNING: printf is rebound in the body of the unit to always
|#
(module text mzscheme
(module text (lib "a-unit.ss")
(require (lib "string-constant.ss" "string-constants")
(lib "unitsig.ss")
(lib "class.ss")
(lib "match.ss")
"sig.ss"
@ -16,21 +15,19 @@ WARNING: printf is rebound in the body of the unit to always
(lib "interactive-value-port.ss" "mrlib")
(lib "list.ss")
(lib "etc.ss"))
(provide text@)
(define text@
(unit/sig framework:text^
(import mred^
[icon : framework:icon^]
[editor : framework:editor^]
[preferences : framework:preferences^]
[keymap : framework:keymap^]
[color-model : framework:color-model^]
[frame : framework:frame^]
[scheme : framework:scheme^]
[number-snip : framework:number-snip^])
(rename [-keymap% keymap%])
(import mred^
[prefix icon: framework:icon^]
[prefix editor: framework:editor^]
[prefix preferences: framework:preferences^]
[prefix keymap: framework:keymap^]
[prefix color-model: framework:color-model^]
[prefix frame: framework:frame^]
[prefix scheme: framework:scheme^]
[prefix number-snip: framework:number-snip^])
(export (rename framework:text^
[-keymap% keymap%]))
(init-depend framework:editor^)
(define original-output-port (current-output-port))
(define (printf . args)
@ -2005,4 +2002,4 @@ WARNING: printf is rebound in the body of the unit to always
(define clever-file-format% (clever-file-format-mixin file%))
(define backup-autosave% (editor:backup-autosave-mixin clever-file-format%))
(define searching% (searching-mixin backup-autosave%))
(define info% (info-mixin (editor:info-mixin searching%))))))
(define info% (info-mixin (editor:info-mixin searching%))))

View File

@ -1,16 +1,11 @@
(module version mzscheme
(require (lib "unitsig.ss")
"sig.ss"
(lib "mred-sig.ss" "mred")
(lib "string.ss")
(lib "list.ss"))
(provide version@)
(define version@
(unit/sig framework:version^
(import)
(rename [-version version])
(module version (lib "a-unit.ss")
(require "sig.ss"
(lib "mred-sig.ss" "mred")
(lib "string.ss")
(lib "list.ss"))
(import)
(export (rename framework:version^
[-version version]))
(define specs null)
@ -24,4 +19,4 @@
(define (add-spec sep num)
(set! specs (cons (list (expr->string sep) (format "~a" num))
specs))))))
specs))))

View File

@ -1,16 +1,11 @@
(module hierlist-sig mzscheme
(require (lib "unitsig.ss"))
(provide hierlist^)
(define-signature hierlist^
(hierarchical-list%
hierarchical-list-item<%>
hierarchical-list-item%
hierarchical-list-compound-item<%>
hierarchical-list-compound-item%
hierarchical-item-snip%
hierarchical-list-snip%)))
(module hierlist-sig (lib "a-signature.ss")
hierarchical-list%
hierarchical-list-item<%>
hierarchical-list-item%
hierarchical-list-compound-item<%>
hierarchical-list-compound-item%
hierarchical-item-snip%
hierarchical-list-snip%)

View File

@ -1,6 +1,6 @@
(module hierlist-unit mzscheme
(require (lib "unitsig.ss")
(require (all-except (lib "unit.ss") rename)
(lib "class.ss")
(lib "class100.ss")
(lib "mred-sig.ss" "mred")
@ -16,10 +16,11 @@
(define turn-down-click (include-bitmap "../icons/turn-down-click.png" 'png))
(provide hierlist@)
(define hierlist@
(unit/sig hierlist^
(import mred^)
(define-unit hierlist@
(import mred^)
(export hierlist^)
(init-depend mred^)
(define-local-member-name
;; In hierarchical-list%
ensure-not-selected)
@ -838,4 +839,4 @@
(allow-tab-exit #t)
(send top-buffer set-cursor arrow-cursor)
(min-width 150)
(min-height 200)))))))
(min-height 200))))))

View File

@ -1,17 +1,18 @@
(module hierlist mzscheme
(require (lib "unitsig.ss")
(lib "mred-sig.ss" "mred")
(lib "mred.ss" "mred"))
(require (lib "unit.ss")
(lib "mred-sig.ss" "mred")
(lib "mred-unit.ss" "mred"))
(require "hierlist-sig.ss"
"hierlist-unit.ss")
(define-values/invoke-unit/sig hierlist^
hierlist@
#f
mred^)
"hierlist-unit.ss")
(define-compound-unit/infer hl
(import)
(export hierlist^)
(link standard-mred@ hierlist@))
(define-values/invoke-unit/infer hl)
(provide-signature-elements hierlist^))

View File

@ -1,11 +1,6 @@
(module mred-sig mzscheme
(require (lib "unitsig.ss"))
(provide mred^)
(define-signature
mred^
(add-color<%>
(module mred-sig (lib "a-signature.ss")
add-color<%>
add-editor-keymap-functions
add-pasteboard-keymap-functions
add-text-keymap-functions
@ -206,5 +201,5 @@
write-editor-version
write-resource
yield
)))
)

View File

@ -0,0 +1,6 @@
(module mred-unit mzscheme
(require (lib "unit.ss")
"mred-sig.ss"
"mred.ss")
(provide standard-mred@)
(define-unit-from-context standard-mred@ mred^))