racket/collects/scribblings/framework/keymap.scrbl

46 lines
1.7 KiB
Racket

#lang scribble/doc
@(require scribble/manual scribble/extract)
@(require (for-label framework))
@(require (for-label scheme/gui))
@title{Keymap}
@definterface[keymap:aug-keymap<%> (keymap%)]{
This keymap overrides some of the built in @scheme[keymap%] methods
to be able to extract the keybindings from the keymap.
@defmethod*[(((get-chained-keymaps) (listof (instance keymap%))))]{
Returns the list of keymaps that are chained to this one.
}
@defmethod*[(((get-map-function-table) hash-table))]{
Returns a hash-table that maps symbols naming key sequences to the
names of the keymap functions the are bound to.
}
@defmethod*[(((get-map-function-table/ht (ht hash-table)) hash-table))]{
This is a helper function for
@method[keymap:aug-keymap<%> get-map-function-table]
that returns the same result, except it accepts a hash-table that
it inserts the bindings into. It does not replace any bindings already in
@scheme[ht].
}
}
@defmixin[keymap:aug-keymap-mixin (keymap%) (keymap:aug-keymap<%>)]{
@defmethod*[#:mode override (((chain-to-keymap (next (instance keymap%)) (prefix? boolean?)) void))]{
Keeps a list of the keymaps chained to this one.
}
@defmethod*[#:mode override (((remove-chained-keymap (keymap (is-a?/c keymap))) void))]{
Keeps the list of the keymaps chained to this one up to date.
}
@defmethod*[#:mode override (((map-function (key-name string) (function-name string)) void))]{
Keeps a separate record of the key names and functions that they are
bound to in this keymap.
}
}
@defclass[keymap:aug-keymap% (keymap:aug-keymap-mixin keymap%) ()]{}
@(include-previously-extracted "main-extracts.ss" #rx"^keymap:")