gui/gui-lib/framework/collapsed-snipclass.rkt
2014-12-02 02:33:07 -05:00

35 lines
1.2 KiB
Racket

#lang racket/base
(require racket/gui/base
racket/class
"private/collapsed-snipclass-helpers.rkt")
(provide snip-class)
(define simple-sexp-snip%
(class* snip% (readable-snip<%>)
(init-field left-bracket right-bracket saved-snips)
(define/public (read-special file line col pos)
(define text (make-object text%))
(for ([s (in-list saved-snips)])
(send text insert (send s copy)
(send text last-position)
(send text last-position)))
(datum->syntax
#f
(read (open-input-text-editor text))
(list file line col pos 1)))
(define/override (copy)
(new simple-sexp-snip%
[left-bracket left-bracket]
[right-bracket right-bracket]
[saved-snips saved-snips]))
(super-new)))
(define sexp-snipclass% (make-sexp-snipclass% simple-sexp-snip%))
(define snip-class (make-object sexp-snipclass%))
(send snip-class set-classname (format "~s" '((lib "collapsed-snipclass.ss" "framework")
(lib "collapsed-snipclass-wxme.ss" "framework"))))
(send snip-class set-version 0)
(send (get-the-snip-class-list) add snip-class)