You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.0 KiB
Racket
33 lines
1.0 KiB
Racket
#lang racket/base
|
|
|
|
(require racket/runtime-path
|
|
racket/gui/base
|
|
racket/class)
|
|
|
|
(provide make-drracket-buttons)
|
|
|
|
(module test racket/base) ; suppress testing by `raco test`
|
|
|
|
(define-runtime-path html-png-path "server-extras/cmd-char.png")
|
|
|
|
#| for toolbar callbacks, see
|
|
|
|
http://pkg-build.racket-lang.org/doc/tools/drracket_module-language-tools.html#%28elem._drracket~3atoolbar-buttons%29
|
|
|
|
|#
|
|
|
|
(define (make-command-char-button command-char)
|
|
(let ([label (format "Insert command char ~a" command-char)]
|
|
[bitmap (make-object bitmap% html-png-path 'png/mask)]
|
|
[callback (λ (drr-frame)
|
|
(define editor (send drr-frame get-definitions-text))
|
|
(send editor begin-edit-sequence)
|
|
(send editor insert command-char)
|
|
(send editor end-edit-sequence))]
|
|
[number 99])
|
|
(list label bitmap callback number)))
|
|
|
|
(define (make-drracket-buttons command-char)
|
|
(let ([command-char-button (make-command-char-button command-char)])
|
|
(list command-char-button)))
|