▼ |  | Plugins: Extending Dr Racket

1 | Implementing Dr Racket Tools
2 | Adding Languages to Dr Racket
3 | Creating New Kinds of Dr Racket Frames
4 | Extending the Existing Dr Racket Classes
5 | Expanding the User’s Program Text and Breaking
6 | Editor Modes
7 | Language-specific capabilities
8 | Check Syntax
9 | drracket: get/ extend
10 | drracket: unit
11 | drracket: language
12 | drracket: language-configuration
13 | drracket: debug
14 | drracket: rep
15 | drracket: frame
16 | drracket: help-desk
17 | drracket: eval
18 | drracket: modes
19 | drracket: module-language-tools
20 | drracket: module-language
21 | Backwards compatibility
| Index

top ← prev up next →

### 4`` Extending the Existing DrRacket Classes

Each of the names:

- drracket:get/extend:extend-interactions-text

- drracket:get/extend:extend-definitions-text

- drracket:get/extend:extend-interactions-canvas

- drracket:get/extend:extend-definitions-canvas

- drracket:get/extend:extend-unit-frame

- drracket:get/extend:extend-tab

is bound to an extender function. In order to change the behavior of DrRacket, you can derive new classes from the standard classes for the frame, texts, canvases. Each extender accepts a function as input. The function it accepts must take a class as it’s argument and return a classes derived from that class as its result. For example:

( drracket:get/extend:extend-interactions-text
( lambda (super%)
( class super%
( define/public (method1 x) ... )
( super-new ))))

extends the interactions text class with a method named method1.
top ← prev up next →