gui/gui-lib/mred/MrEd_100.txt
2014-12-02 02:33:07 -05:00

1051 lines
43 KiB
Plaintext

======================================================================
0. Highlights of the New MrEd Toolbox
======================================================================
* The wx/mred split has been eliminated. The wx methods for manually
managing the position and size of windows have been eliminated;
containers manage all window positions and sizes. The only way to
set control positions explicitly is to derive a new container
class.
The windowing class hierarchy has been rerranged. For example,
dialog% (formerly dialog-box%) is no longer a subclass of panel%,
which is itself no longer a subclass of canvas%.
Interfaces are widely used in the toolbox. The old toolbox provided
many "classes" like wx:window% that could not be instantiated. The
new toolbox has a window<%> interface (where "<%>" is the
conventional suffix for interfaces).
* Instead of null, #f is used for the "no appropriate value" value,
such as the parent argument for a frame that does not have a parent
window, or the result for get-label when the window does not have a
label.
There are no wx:const-... values. Instead, a method that used to
take a single (numerical) wx:const- flag now takes a symbol, and a
method that used to take bitwise-ior'd wx:const- integers now takes
a list of symbols. For example, wx:const-horizontal was replaced by
'horizontal, and wx:const-bitmap-type-gif was replaced with 'gif.
* The old documentation described certain methods as consuming "small
integer" values; the implementation actually accepted any sort of
number and coerced it to a machine-word integer. Methods now
consume a precisely defined class of numbers. For example, most
windowing methods that formerly consumed "small integers" now
consume "exact integers in [0, 10000]". The implementation signals
an exception when provided an inexact number, a non-integer, or an
integer outside the range [0, 10000]. A few methods consume
arbitrary exact non-negative integers; those methods behave
correctly when provided an integer represented as a bignum.
In the windowing toolbox, object-specific out-of-range errors are
now signalled by a mismatch exception. (In previous versions of
MrEd, out-of-range errors were generally ignored.) For example, if
a list-box% instance contains only 10 items, calling the
set-selection method with the index 11 signals a mismatch
exception.
* The menu system was turned upside-down, giving it a structure more
like rest of the toolbox. For example, instead of creating a menu
bar and then calling a frame's set-menu-bar method, a menu bar is
created by providing the frame as an initialization argument in
(make-object menu-bar% ...). Similarly, a menu is created by
supplying the parent menu bar as an initialization argument (or a
parent menu to create a submenu). Finally, a menu item is created
by instantiating menu-item% or checkable-menu-item% with a parent
menu. Integer menu IDs have been eliminated; when a menu item is
selected, a callback associated with the menu item is executed,
just as when a button is clicked.
* The "media" names have changed. Roughly, we replaced "media" with
"editor", or dropped "media" when "editor" is not useful. The
following is the name mapping for some commonly used classes:
media-canvas% => editor-canvas%
media-buffer% => editor<%>
media-edit% => text%
media-pasteboard% => pasteboard%
snip% => snip%
media-snip% => editor-snip%
text-snip% => string-snip% (to avoid confusion)
Methods of text% (formerly media-edit%) check that position, line,
and paragraph arguments are non-negative. In methods where -1
(really any negative value) had a special meaning, a symbol is now
used. For example, the old call
(send (make-object media-edit%) insert "Hello" 0 -1)
translates to using 'same instead of -1:
(send (make-object text%) insert "Hello" 0 'same)
Many of the old on-XXX methods for editors formerly returned a
Boolean value to indicate whether the action should proceed (e.g.,
on-insert in media-edit%), but that convention does not work well
with composing class extensions. MrEd 100 provides a parallel set
of can-XXX? methods (e.g., can-insert? in text%) that first
determines whether an operation should proceed; if so, on-XXX is
called (its result is ignored), the operation is performed, and
after-XXX is called.
Beside renaming and checking, little else has changed in the editor
toolbox, but it is a little better integrated with system-wide
keyboard focus methods. For example, frame% provides a
get-focus-window method, which returns the frame's subwindow with
the current focus, but it also provides a get-focus-object method,
which returns an editor<%> object if an editor-canvas% has the
keyboard focus.
* The text-field% control (formerly wx:text% and wx:multi-text%) now
works well on all platforms, because it is implemented using the
editor classes. (The equivalent of a wx:multi-text% instance is
created via a style flag for text-field%.)
* The command-event% class was changed to control-event%. It has very
few methods, since the information that was formerly encapsulated
in a command-event% object can be extracted just as easily from the
control.
* Navigating controls (in a frame or dialog) with the keyboard works
on all platforms. Mnemonic characters (underlined letters in a
control label) now work correctly under Windows, and now also work
under X. Windows keyboard events involving the Alt key are now
reported to on-char et al. (as a Meta key event).
* The device context system has been changed to provide a larger set
of methods that paint consistently on all platforms. Most "logical
functions" (e.g., 'invert, 'src-and, 'no-op) have been eliminated,
but non-rectangular clipping regions and region operations (e.g.,
union and intersect) were added.
The old canvas-dc% class was eliminated. The memory-dc% class was
renamed to bitmap-dc%.
The blit method was replaced by draw-bitmap and draw-bitmap-region,
which operate directly on bitmaps. Monochrome bitmaps can be drawn
with either a transparent or solid background. The icon% class and
draw-icon method were removed, since bitmaps provide all of the
same functionality.
The xor drawing mode was removed from device contexts and added as
a style for pens and brushs. Brush stipples work on all platforms
(with consistent opaqueness and colorization). Pen stipples also
work, but are restricted to 8x8 monochrome bitmaps. The 'stipple
and 'opaque-stipple styles were eliminated; instead, installing a
stipple bitmap into a pen or brush overrides other style settings.
The arguments to draw-arc were changed; draw-arc now reliably draws
sections of non-circular ellipses.
The initialization arguments for post-script-dc% and printer-dc%
where changed. Global PostScript settings were replaced with a
parameter containing a ps-setup% object.
The canvas% class no longer supplies drawing methods. Instead, all
canvas drawing must use get-dc to get a drawing context (which
always had a more complete set of methods, anyway).
* Initialization arguments for creating windows have been re-ordered.
In general, the order is as follows:
label [sub-labels] parent callback [init-value] style
^- e.g., items in a radio box
where style is a list of symbols.
Some methods have been renamed to be either more (accurately)
descriptive or more consistent with other method names. American
spelling is used everywhere: colour -> color, centre -> center,
grey -> gray.
MzScheme's class syntax also changed slightly:
* In MzScheme 53, the empty list could be provided as a class's
"superclass", indicating that the class has no superclass. In 100,
every new class must have a superclass (and super-init must always
be called). MzScheme 100 provides a built-in empty class called
object%.
* In MzScheme 53, a `public' instance variable declaration would
either override an existing instance variable or declare a new one,
depending on the set of instance variables provided by the
superclass. In 100, a `public' declaration always introduces a new
instance variable; if the superclass already provides the instance
variable, an exception is raised. The new `override' clause
declares instance variables to override existing definitions; an
exception is raised if the superclass does not provide the instance
variable to override.
======================================================================
1. Interface/Class Type Hierarchy (Selected Excerpts)
======================================================================
[To avoid lines that cross or go in the wrong direction, the following
type hierarchy picture is drawn on a cylinder, with lines from
subarea<%> and subwindow<%> wrapping from the left of the diagram to
the right.]
area<%>
_____________________|_______________
| | |
subarea<%> window<%> area-container<%>
<<<____|____ _____|_________ _|__ ________________________<<<
| | | | | |
subwindow<%> | | | |
<<<______________|___________ | | pane% _<<<
| | | | |- horizontal-pane% |
control<%> | | | |- vertical-pane% |
|- message% | | | |- grow-box-spacer-pane% |
|- button% | | | |
|- check-box% | area-container-window<%> |
|- slider% | | |
|- gauge% | | __________________|
|- text-field% | | |
|- radio-box% | |-------- panel%
|- list-control<%> | | |- horizontal-panel%
|- choice% | | |- vertical-panel%
|- list-box% | |
| |- top-level-window<%>
| |- frame%
| |- dialog%
canvas<%>
|- canvas%
|- editor-canvas%
menu-item<%> menu-item-container<%>
| |
|- separator-menu-item% _____|___
|- labelled-menu-item<%> | |- menu-bar%
_________|_________ | |- popup-menu%
| | |
| menu%
|
|- selectable-menu-item<%>
|- menu-item%
|- checkable-menu-item%
dc<%> (canvas<%>'s get-dc returns a dc<%>)
|- bitmap-dc% (formerly memory-dc%)
|- printer-dc%
|- postscript-dc%
editor<%> (maybe has an edit-admin% and some editor-canvas<%>s)
|- text%
|- pasteboard%
snip% (as a snip-admin%)
|- text-snip%
| |- tab-snip%
|- image-snip%
|- editor-snip% (formerly media-snip%; has an editor<%>)
editor-admin% (formerly media-admin%)
|- snip-editor-admin%
snip-admin%
event%
|- control-event% (formerly command-event%; for control/menu-item callbacks)
|- mouse-event%
|- key-event%
|- scroll-event% (new; used for on-scroll)
======================================================================
2. Interface/Class Methods (Selected Excerpts)
Method arguments are not generally shown, but the new initialization
arguments are listed after "<=" for classes.
======================================================================
area<%>
get-parent
get-top-level-window - returns the area's frame/dialog
min-width min-height
get-graphical-min-size
stretchable-width stretchable-height
subarea<%> : area<%>
horiz-margin vert-margin
window<%> : area<%>
focus has-focus? - focus replaces set-focus
on-focus - on-focus replaces on-set-focus and on-kill-focus
enable is-enabled?
on-size
on-subwindow-char on-subwindow-event - formerly pre-on-...
client->screen screen->client - takes two and returns two values
get-label set-label
get-plain-label - e.g., "Button" instead of "&Button"
get-client-size - returns two values
get-size - returns two values
get-width get-height get-x get-y
get-cursor set-cursor
show is-shown?
refresh
accept-drop-files on-drop-file
area-container<%> : area<%>
container-size
get-children change-children place-children
add-child delete-child
after-new-child
border - parameter-like
spacing - parameter-like
set-alignment - takes two syms: 'left/'center/'right 'top/'center/'bottom
get-alignment - returns two syms...
area-container-window<%> : container<%> window<%>
set-control-font get-control-font
set-label-font get-label-font
set-label-position get-label-position
subwindow<%> : subarea<%> window<%>
panel% : area-container-window<%> subwindow<%>
<= parent [style null]
styles: 'border
horizontal-panel%: panel%
<= parent [style null]
styles: 'border
vertical-panel%: panel%
<= parent [style null]
styles: 'border
pane% : container<%> subwindow<%>
<= parent
horizontal-pane%: pane%
<= parent
vertical-pane%: pane%
<= parent
gorw-box-spacer-pane%: pane%
<= parent
top-level-window<%> : area-container-window<%>
get-eventspace
on-activate
can-close? on-close
can-exit? on-exit - called when the OS asks MrEd to exit
get-focus-window - the window with the current focus (or #f)
get-edit-target-window - the window to last have the focus (or #f)
get-focus-object - the window/editor with the curent focus (or #f)
get-edit-target-object - the window/editor to last have the focus (or #f)
on-traverse-char on-system-menu-char
center move resize
frame% : top-level-window<%>
<= label [parent #f] [width #f] [height #f] [x #f] [y #f] [style null]
styles: 'no-resize-border 'no-caption 'no-system-menu
'mdi-parent 'mdi-child
create-status-line set-status-text has-status-line?
get-menu-bar
iconize is-iconized? set-icon maximize
on-menu-char
dialog% : top-level-window<%>
<= label [parent #f] [width #f] [height #f] [x #f] [y #f] [style null]
styles: 'no-caption 'resize-border
control<%> : subwindow<%>
command - just invokes the callback; no longer changes the control value
message% : control<%>
<= label parent [style null]
styles: none
button% : control<%>
<= label parent callback [style null]
styles: 'default
check-box% : control<%>
<= label parent callback [style null]
styles: none
set-value get-value
slider% : control<%>
<= label min-val max-val parent callback [value min-val]
[style '(horizontal)]
styles: 'horizontal 'vertical
set-value get-value
gauge% : control<%>
<= label range parent [style '(horizontal)]
styles: 'horizontal 'vertical
set-value get-value
set-range get-range
text-field% : control<%>
<= label parent callback [init-val ""] [style '(single)]
styles: 'single, 'multiple, 'hscroll
get-value set-value
get-editor
radio-box% : control<%>
<= label choices parent callback [style '(vertical)]
styles: 'horizontal 'vertical
get-number
get-item-label - label for one of the choices
get-item-plain-label - e.g., "Cut" intsead of "Cut Cmd-X"
get-selection set-selection
list-control<%> : control<%>
clear append
get-number
get-string find-string
get-selection
get-string-selection
set-selection
set-string-selection
choice% : list-control<%>
<= label choices parent callback [style null]
styles: none
list-box% : list-control<%>
<= label choices parent callback [style '(single)]
styles: 'single 'multiple 'extended 'always-vscroll 'hscroll
delete
get-data set-data
get-selections
select is-selected?
set set-string set-data
number-of-visible-items
get-first-visible set-first-visible
canvas<%> : subwindow<%>
on-char on-event on-paint on-scroll on-tab-in
popup-menu warp-pointer get-dc
client-min-width client-min-height
canvas% : canvas<%>
<= parent [style null]
styles: 'border 'vscroll 'hscroll
get-virtual-size get-view-start
init-manual-scrollbars init-auto-scrollbars
scroll
get-scroll-pos set-scroll-pos
get-scroll-range set-scroll-range
get-scroll-page set-scroll-page
editor-canvas% : canvas<%>
<= parent [editor #f] [style null] [scrolls-per-page 100]
styles: 'no-hscroll 'no-vscroll 'hide-hscroll 'hide-vscroll
call-as-primary-owner
allow-scroll-to-last - parameter-like
scroll-with-bottom-base - parameter-like
lazy-refresh - parameter-like
force-display-focus - parameter-like
get-editor set-editor - formerly get-media and set-media
set-line-count
menu-item<%>
get-parent
delete restore is-deleted?
separator-menu-item%
<= parent
labelled-menu-item<%>
get-label set-label
get-plain-label
get-help-string set-help-string
enable is-enabled?
selectable-menu-item<%>
command
get-shortcut set-shortcut
get-x-shortcut-prefix set-x-shortcut-prefix
menu-item%
<= label parent callback [shortcut #f] [help-string #f]
checkable-menu-item%
<= label parent callback [shortcut #f] [help-string #f]
check is-checked?
menu-item-container<%>
get-items
menu%
<= label parent [help-string #f]
popup-menu%
<= title
menu-bar%
<= frame
get-frame
enable is-enabled?
editor<%>
[ all the old wx:media-buffer% stuff, plus... ]
get-canvases - a list of canvases displaying the editor
get-active-canvas - the canvas that most recently had the focus (or #f)
get-canvas - the active canvas, or the first canva (or #f)
set-active-canvas add-canvas remove-canvas
auto-wrap - parameter-like
on-display-size - called when a display for the editor changes its size
event%
<=
get-time-stamp set-time-stamp
control-event%
<= event-type
get-event-type set-event-type
mouse-event%
<= event-type
get-event-type set-event-type
button-down? - specify a button with 'left, 'middle, 'right, or 'all
button-up?
dragging?
entering?
leaving?
moving?
button-changed?
get-left-down set-left-down
get-middle-down set-middle-down
get-right-down set-right-down
get-x get-y set-x set-y
get-shift-down set-shift-down
get-control-down set-control-down
get-meta-down set-meta-down
get-alt-down set-alt-down
key-event%
<=
get-key-code set-key-code - key code is a char or a symbol
get-shift-down set-shift-down
get-control-down set-control-down
get-meta-down set-meta-down
get-alt-down set-alt-down
get-x get-y set-x set-y
scroll-event%
<=
get-position set-position
get-event-type set-event-type
get-direction set-direction
======================================================================
3. Procedures
This is a complete list, although the arguments are only shown for a
few procedures.
If an old procedure isn't listed here, we got rid of it.
======================================================================
get-file
<= [message #f] [parent #f] [directory #f] [filename #f] [extension #f]
[style null]
styles: none
put-file
<= [message #f] [parent #f] [directory #f] [filename #f] [extension #f]
[style null]
styles: none
message-box
<= title message [parent #f] [style '(ok)]
styles: 'yes-no 'ok 'ok-cancel
get-text-from-user
<= title message [init-val #f] [parent #f] [style null]
styles: none
get-choices-from-user (returns index integers, not the values)
<= title message choices [parent #f] [init-choices null] [style null]
styles: 'single 'multiple 'extended
get-ps-setup-from-user
<= [message #f] [parent #f] [init-setup #f] [style null]
styles: none
get-color-from-user - now supported for all platforms
<= [message #f] [parent #f] [init-color #f] [style null]
styles: none
get-font-from-user - now supported for all platforms
<= [message #f] [parent #f] [init-font #f] [style null]
styles: none
color-display? get-display-depth get-display-size
begin-busy-cursor end-busy-cursor is-busy-cursor?
bell
label->plain-label
get-resource write-resource
get-face-list - formerly wx:get-font-list
yield sleep/yield flush-display
queue-callback
find-graphical-system-path - formerly wx:find-path
current-ps-setup
get-top-level-windows
get-top-level-focus-window
get-top-level-edit-target-window
current-new-top-level-window-handler
get-window-text-extent
get-panel-background
graphical-read-eval-print-loop
make-eventspace
eventspace?
current-eventspace
eventspace-shutdown?
event-dispatch-handler
check-for-break
special-control-key
read-editor-global-header
read-editor-global-footer
write-editor-global-header
write-editor-global-footer
append-editor-operation-menu-items
append-editor-font-menu-items
add-editor-keymap-functions
add-text-keymap-functions
add-pasteboard-keymap-functions
current-text-keymap-initializer
editor-set-x-selection-mode
get-the-snip-class-list
get-the-buffer-data-class-list
======================================================================
4. Constant Mapping
The following table maps old wx:const- identifiers to new symbols.
======================================================================
wx:const-align-bottom 'bottom
wx:const-align-center 'center
wx:const-align-top 'top
wx:const-always-sb 'always-hscroll
wx:const-and 'and
wx:const-and-invert 'and-invert
wx:const-and-reverse 'and-reverse
wx:const-base 'base
wx:const-bdiagonal-hatch 'bdiagonal-hatch
wx:const-bitmap-type-bmp 'bmp
wx:const-bitmap-type-bmp-resource 'bmp-resource
wx:const-bitmap-type-gif 'gif
wx:const-bitmap-type-pict 'pict
wx:const-bitmap-type-pict-resource 'pict-resource
wx:const-bitmap-type-xbm 'xbm
wx:const-bitmap-type-xpm 'xpm
wx:const-bold 'bold
wx:const-border 'border
wx:const-both 'both
wx:const-break-for-caret 'caret
wx:const-break-for-line 'line
wx:const-break-for-selection 'selection
wx:const-break-for-user-1 'user1
wx:const-break-for-user-2 'user2
wx:const-cancel 'cancel
wx:const-cap-butt 'butt
wx:const-cap-projecting 'projecting
wx:const-cap-round 'round
wx:const-caption 'caption
wx:const-centre 'centre
wx:const-change-alignment 'change-alignment
wx:const-change-bigger 'change-bigger
wx:const-change-bold 'change-bold
wx:const-change-family 'change-family
wx:const-change-italic 'change-italic
wx:const-change-normal 'change-normal
wx:const-change-normal-colour 'change-normal-color
wx:const-change-nothing 'change-nothing
wx:const-change-size 'change-size
wx:const-change-smaller 'change-smaller
wx:const-change-style 'change-style
wx:const-change-toggle-style 'change-toggle-style
wx:const-change-toggle-underline 'change-toggle-underline
wx:const-change-toggle-weight 'change-toggle-weight
wx:const-change-underline 'change-underline
wx:const-change-weight 'change-weight
wx:const-clear 'clear
wx:const-colour 'color
wx:const-copy 'copy
wx:const-cross-hatch 'cross-hatch
wx:const-crossdiag-hatch 'crossdiag-hatch
wx:const-cursor-arrow 'arrow
wx:const-cursor-bullseye 'bullseye
wx:const-cursor-char (NO LONGER USED)
wx:const-cursor-cross 'cross
wx:const-cursor-hand 'hand
wx:const-cursor-ibeam 'ibeam
wx:const-cursor-left-button (NO LONGER USED)
wx:const-cursor-magnifier (NO LONGER USED)
wx:const-cursor-middle-button (NO LONGER USED)
wx:const-cursor-no-entry (NO LONGER USED)
wx:const-cursor-paint-brush (NO LONGER USED)
wx:const-cursor-pencil (NO LONGER USED)
wx:const-cursor-point-left (NO LONGER USED)
wx:const-cursor-point-right (NO LONGER USED)
wx:const-cursor-question-arrow (NO LONGER USED)
wx:const-cursor-right-button (NO LONGER USED)
wx:const-cursor-sizenesw (NO LONGER USED)
wx:const-cursor-sizens (NO LONGER USED)
wx:const-cursor-sizenwse (NO LONGER USED)
wx:const-cursor-sizewe (NO LONGER USED)
wx:const-cursor-sizing (NO LONGER USED)
wx:const-cursor-spraycan (NO LONGER USED)
wx:const-cursor-wait (NO LONGER USED)
wx:const-cursor-watch 'watch
wx:const-decorative 'decorative
wx:const-default 'default
wx:const-default-select 'default
wx:const-dot 'dot
wx:const-dot-dash 'dot-dash
wx:const-edit-buffer 'text
wx:const-edit-clear 'clear
wx:const-edit-copy 'copy
wx:const-edit-cut 'cut
wx:const-edit-insert-graphic-box 'insert-graphic-box
wx:const-edit-insert-image 'insert-image
wx:const-edit-insert-text-box 'insert-text-box
wx:const-edit-kill 'kill
wx:const-edit-paste 'paste
wx:const-edit-redo 'redo
wx:const-edit-select-all 'select-all
wx:const-edit-undo 'undo
wx:const-equiv 'equiv
wx:const-event-type-button-command 'button
wx:const-event-type-checkbox-command 'checkbox
wx:const-event-type-choice-command 'choice
wx:const-event-type-enter-window 'enter
wx:const-event-type-kill-focus 'kill-focus
wx:const-event-type-leave-window 'leave
wx:const-event-type-left-dclick (NO LONGER USED)
wx:const-event-type-left-down 'left-down
wx:const-event-type-left-up 'left-up
wx:const-event-type-listbox-command 'list-box
wx:const-event-type-menu-command (NO LONGER USED)
wx:const-event-type-middle-dclick (NO LONGER USED)
wx:const-event-type-middle-down 'middle-down
wx:const-event-type-middle-up 'middle-up
wx:const-event-type-motion 'motion
wx:const-event-type-multitext-command (NO LONGER USED)
wx:const-event-type-radiobox-command 'radio-box
wx:const-event-type-right-dclick (NO LONGER USED)
wx:const-event-type-right-down 'right-down
wx:const-event-type-right-up 'right-up
wx:const-event-type-scroll-bottom 'scroll-bottom
wx:const-event-type-scroll-linedown 'scroll-line-down
wx:const-event-type-scroll-lineup 'scroll-line-up
wx:const-event-type-scroll-pagedown 'scroll-page-down
wx:const-event-type-scroll-pageup 'scroll-page-up
wx:const-event-type-scroll-thumbtrack 'scroll-thumb
wx:const-event-type-scroll-top 'scroll-top
wx:const-event-type-scrollbar-command (NO LONGER USED)
wx:const-event-type-set-focus 'set-focus
wx:const-event-type-slider-command 'slider
wx:const-event-type-text-command 'text
wx:const-event-type-text-enter-command 'text-field-enter
wx:const-event-type-virt-listbox-command (NO LONGER USED)
wx:const-extended 'extended
wx:const-fdiagonal-hatch 'fdiagonal-hatch
wx:const-focus-display 'display
wx:const-focus-global 'global
wx:const-focus-immediate 'immediate
wx:const-hide-readonly 'hide-readonly
wx:const-horizontal 'horizontal
wx:const-horizontal-hatch 'horizontal-hatch
wx:const-hscroll 'hscroll
wx:const-icon-exclamation 'icon-exclamation
wx:const-icon-hand 'icon-hand
wx:const-icon-information 'icon-information
wx:const-icon-question 'icon-question
wx:const-iconize 'iconize
wx:const-invert 'invert
wx:const-italic 'italic
wx:const-join-bevel 'bevel
wx:const-join-miter 'miter
wx:const-join-round 'round
wx:const-k-add 'add
wx:const-k-back (NO LONGER USED)
wx:const-k-cancel 'cancel
wx:const-k-capital 'capital
wx:const-k-clear 'clear
wx:const-k-control 'control
wx:const-k-decimal 'decimal
wx:const-k-delete (NO LONGER USED)
wx:const-k-divide 'divide
wx:const-k-down 'down
wx:const-k-end 'end
wx:const-k-escape (NO LONGER USED)
wx:const-k-execute 'execute
wx:const-k-f1 'f1
wx:const-k-f10 'f10
wx:const-k-f11 'f11
wx:const-k-f12 'f12
wx:const-k-f13 'f13
wx:const-k-f14 'f14
wx:const-k-f15 'f15
wx:const-k-f16 'f16
wx:const-k-f17 'f17
wx:const-k-f18 'f18
wx:const-k-f19 'f19
wx:const-k-f2 'f2
wx:const-k-f20 'f20
wx:const-k-f21 'f21
wx:const-k-f22 'f22
wx:const-k-f23 'f23
wx:const-k-f24 'f24
wx:const-k-f3 'f3
wx:const-k-f4 'f4
wx:const-k-f5 'f5
wx:const-k-f6 'f6
wx:const-k-f7 'f7
wx:const-k-f8 'f8
wx:const-k-f9 'f9
wx:const-k-help 'help
wx:const-k-home 'home
wx:const-k-insert 'insert
wx:const-k-lbutton 'lbutton
wx:const-k-left 'left
wx:const-k-mbutton 'mbutton
wx:const-k-menu 'menu
wx:const-k-multiply 'multiply
wx:const-k-next 'next
wx:const-k-numlock 'numlock
wx:const-k-numpad0 'numpad0
wx:const-k-numpad1 'numpad1
wx:const-k-numpad2 'numpad2
wx:const-k-numpad3 'numpad3
wx:const-k-numpad4 'numpad4
wx:const-k-numpad5 'numpad5
wx:const-k-numpad6 'numpad6
wx:const-k-numpad7 'numpad7
wx:const-k-numpad8 'numpad8
wx:const-k-numpad9 'numpad9
wx:const-k-pause 'pause
wx:const-k-print 'print
wx:const-k-prior 'prior
wx:const-k-rbutton 'rbutton
wx:const-k-return (NO LONGER USED)
wx:const-k-right 'right
wx:const-k-scroll 'scroll
wx:const-k-select 'select
wx:const-k-separator 'separator
wx:const-k-shift 'shift
wx:const-k-snapshot 'snapshot
wx:const-k-space (NO LONGER USED)
wx:const-k-start 'start
wx:const-k-subtract 'subtract
wx:const-k-tab (NO LONGER USED)
wx:const-k-up 'up
wx:const-light 'light
wx:const-local-select 'local
wx:const-long-dash 'long-dash
wx:const-maximize 'maximize
wx:const-maximize-box 'maximize-box
wx:const-mcanvas-hide-h-scroll 'hide-hscroll
wx:const-mcanvas-hide-v-scroll 'hide-vscroll
wx:const-mcanvas-no-h-scroll 'no-hscroll
wx:const-mcanvas-no-v-scroll 'no-vscroll
wx:const-mdi-child 'mdi-child
wx:const-mdi-parent 'mdi-parent
wx:const-media-ff-copy 'copy
wx:const-media-ff-guess 'guess
wx:const-media-ff-same 'same
wx:const-media-ff-std 'standard
wx:const-media-ff-text 'text
wx:const-media-ff-text-force-cr 'text-force-cr
wx:const-minimize 'minimize
wx:const-minimize-box 'minimize-box
wx:const-mm-lometric (NO LONGER USED)
wx:const-mm-metric (NO LONGER USED)
wx:const-mm-points (NO LONGER USED)
wx:const-mm-text (NO LONGER USED)
wx:const-mm-twips (NO LONGER USED)
wx:const-modern 'modern
wx:const-move-line 'line
wx:const-move-page 'page
wx:const-move-simple 'simple
wx:const-move-word 'word
wx:const-msnipbox-xinset (NO LONGER USED: use 1)
wx:const-msnipbox-xmargin (NO LONGER USED: use 5)
wx:const-msnipbox-yinset (NO LONGER USED: use 1)
wx:const-msnipbox-ymargin (NO LONGER USED: use 5)
wx:const-multiple 'multiple
wx:const-nand 'nand
wx:const-no 'no
wx:const-no-op 'no-op
wx:const-nor 'nor
wx:const-normal 'normal
wx:const-oddeven-rule 'odd-even
wx:const-ok 'ok
wx:const-opaque-stipple 'opaque-stipple
wx:const-open 'open
wx:const-or 'or
wx:const-or-invert 'or-invert
wx:const-or-reverse 'or-reverse
wx:const-overwrite-prompt 'overwrite-prompt
wx:const-password (NO LONGER USED)
wx:const-pasteboard-buffer 'pasteboard
wx:const-pos-use-minus-one (NO LONGER USED)
wx:const-print-ask (NO LONGER USED)
wx:const-print-postscript 'postscript
wx:const-print-standard 'standard
wx:const-process-enter (NO LONGER USED)
wx:const-ps-file 'file
wx:const-ps-landscape 'landscape
wx:const-ps-portrait 'portrait
wx:const-ps-preview 'preview
wx:const-ps-printer 'printer
wx:const-readonly (NO LONGER USED)
wx:const-resize-border 'resize-border
wx:const-roman 'roman
wx:const-save 'save
wx:const-script 'script
wx:const-sdi 'sdi
wx:const-set 'set
wx:const-short-dash 'short-dash
wx:const-single 'single
wx:const-size-auto (NO LONGER USED)
wx:const-size-auto-height (NO LONGER USED)
wx:const-size-auto-width (NO LONGER USED)
wx:const-size-use-exsiting (NO LONGER USED)
wx:const-slant 'slant
wx:const-snip-after 'after
wx:const-snip-after-or-null 'after-or-none
wx:const-snip-anchored 'anchored
wx:const-snip-before 'before
wx:const-snip-before-or-null 'before-or-none
wx:const-snip-can-append 'can-append
wx:const-snip-draw-no-caret 'no-caret
wx:const-snip-draw-show-caret 'show-caret
wx:const-snip-draw-show-inactive-caret 'show-inactive-caret
wx:const-snip-handles-events 'handles-events
wx:const-snip-hard-newline 'hard-newline
wx:const-snip-height-depends-on-x 'height-depends-on-x
wx:const-snip-height-depends-on-y 'height-depends-on-y
wx:const-snip-invisible 'invisible
wx:const-snip-is-text 'is-text
wx:const-snip-newline 'newline
wx:const-snip-uses-buffer-path 'uses-buffer-path
wx:const-snip-width-depends-on-x 'width-depends-on-x
wx:const-snip-width-depends-on-y 'width-depends-on-y
wx:const-solid 'solid
wx:const-src-invert 'src-invert
wx:const-stipple 'stipple
wx:const-swiss 'swiss
wx:const-system 'system
wx:const-system-menu 'system-menu
wx:const-teletype 'teletype
wx:const-thick-frame 'thick-frame
wx:const-transparent 'transparent
wx:const-type-command-event 'command
wx:const-type-key-event 'key
wx:const-type-mouse-event 'mouse
wx:const-vertical 'vertical
wx:const-vertical-hatch 'vertical-hatch
wx:const-vscroll 'vscroll
wx:const-winding-rule 'winding
wx:const-x-select 'x
wx:const-xor 'xor
wx:const-yes 'yes
wx:const-yes-no 'yes-no
======================================================================
5. Relatively subtle and potentially confusing changes
======================================================================
Added queue-callback: (queue-callback proc [hi-priority?])
and removed MzScheme's semaphore-callback. Added low-priority
callbacks in addition to the old high-priority callbacks.
key-event%'s key-code method was removed.
key-event%'s get-key-code returns a character or a symbol
instead of a number.
window<%>'s set-cursor no longer returns the cursor; added get-cursor,
instead.
key-event% for a numpad Enter key in Xt reports 'numpad-enter for the
key code instead of #\return.
Added 'unknown image kind for bitmap%'s load-file, etc., which
examines the file to determine the type automatically.
'wx flag for MzScheme's make-namespace changed to 'mred.
canvas%'s get-view-start returns values in pixels, not scroll units.
dc<%>'s get-text-extent and get-size return multiple values
instead of mutating boxes.
dc<%>'s get-/set-background-mode changed to get-/set-text-mode.
A text editor's selection caret now blinks; added a blink-caret method
to editor<%> and snip%.
In editor<%>'s scroll-to, text%'s scroll-to-position and
set-position-bias-scroll, editor-admin%'s scroll-to, and
snip-admin%'s scroll-to, bias changed from an integer to a symbol
(see the docs for details).
media-buffer%'s do-edit changed to editor<%>'s do-edit-operation,
which takes a symbol instead of a number.
Changed editor<%>'s modified? to is-modified?, added is-locked?.
Added add-undo method to editor<%>, and introduced editor-undo% class.
editor-wordbreak-map%'s get-map and set-map now work on characters
instead of integers.
text%'s find-string and find-string-all use symbols to specify the
direction, 'forward or 'backward instead of -1 or 1.
Changed arguments and default value of fit-on-page? for print in
editor<%>.
pasteboard%'s {on,after}-interactive-move takes a mouse-event% object.
pasteboard% is now locked for writing during calls to on-paint
editor-snip%'s resize method no longer calls the embedded buffer's
set-max-size and set-min-size; now it calls on-display-size.
clipboard% changed to clipboard<%> and font-name-directory% changed to
font-name-directory<%>; there is just once instance, the-clipboard
and the-font-name-directory.
the-color-database only has a find-color method; the others were
removed. Certain color names with mappings under X (e.g.,
"FORESTGREEN") are no longer available; instead, the only availabale
colors are the ones defined in the manual.
Changed the syntax for keymap%'s map-function. f a modifier is not
mentioned in a state string, it matches states where the modifier is
pressed or not pressed. A tilde (~) preceding a modifier makes the
string match only states where the corresponding modifier is not
pressed.
Changed keymap%'s add-key-function and add-mouse-function to
add-function (eliminating the different namespaces for key and mouse
event functions).
Removed keymap%'s set-error-callback; the keymap errors are instead
reported by raising an exception. The exception handler can't escape,
but it can at least print the error to the current error port.