racket/collects/xml/text-box-tool.ss
Eli Barzilay 7d50e61c7f * Newlines at EOFs
* Another big chunk of v4-require-isms
* Allow `#lang framework/keybinding-lang' for keybinding files
* Move hierlist sources into "mrlib/hierlist", leave stub behind

svn: r10689
2008-07-09 07:18:06 +00:00

39 lines
1.3 KiB
Scheme

(module text-box-tool mzscheme
(require drscheme/tool
mred
framework
"text-snipclass.ss"
mzlib/unit
mzlib/class
mzlib/contract
string-constants
mrlib/include-bitmap)
(provide tool@)
(define tool@
(unit
(import drscheme:tool^)
(export drscheme:tool-exports^)
(define (phase1) (void))
(define (phase2) (void))
(define (text-box-mixin %)
(class %
(inherit get-insert-menu get-edit-target-object register-capability-menu-item)
(super-new)
(new menu-item%
(label (string-constant insert-text-box-item))
(parent (get-insert-menu))
(callback
(lambda (menu event)
(let ([c-box (new text-box%)]
[text (get-edit-target-object)])
(send text insert c-box)
(send text set-caret-owner c-box 'global)))))
(register-capability-menu-item 'drscheme:special:insert-text-box (get-insert-menu))))
(drscheme:get/extend:extend-unit-frame text-box-mixin)
(drscheme:language:register-capability 'drscheme:special:insert-text-box (flat-contract boolean?) #t))))