Changed @itemize{...} to @itemize[...] (done after comparing the doc
tree and verifying that there are no changes). (Also fixed a few bugs that were in the code) svn: r14427 original commit: c0a8a0122200209e38dff1959d79b58f847814db
This commit is contained in:
parent
abd9eaa6b9
commit
9d63c4e072
|
@ -151,14 +151,14 @@
|
|||
(name-list val-list)
|
||||
@{Like @scheme[put-preferences], but has more sophisticated error
|
||||
handling. In particular, it
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{waits for three consecutive failures before informing the
|
||||
user}
|
||||
@item{gives the user the opportunity to ``steal'' the lockfile
|
||||
after the third failure, and}
|
||||
@item{when failures occur, it remembers what its arguments were
|
||||
and if any preference save eventually succeeds, all of the
|
||||
past failures are also written at that point.}}})
|
||||
past failures are also written at that point.}]})
|
||||
|
||||
(proc-doc/names
|
||||
preferences:add-panel
|
||||
|
@ -351,7 +351,7 @@
|
|||
(-> any)
|
||||
()
|
||||
@{@scheme[exit:exit] performs four actions:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{sets the result of the @scheme[exit:exiting?] function to
|
||||
@scheme[#t].}
|
||||
@item{invokes the exit-callbacks, with @scheme[exit:can-exit?] if
|
||||
|
@ -359,7 +359,7 @@
|
|||
@item{invokes @scheme[exit:on-exit] and then}
|
||||
@item{queues a callback that calls @scheme[exit]
|
||||
(a mzscheme procedure) and (if @scheme[exit] returns) sets the result of
|
||||
@scheme[exit:exiting?] back to @scheme[#t].}}})
|
||||
@scheme[exit:exiting?] back to @scheme[#t].}]})
|
||||
|
||||
(proc-doc/names
|
||||
exit:user-oks-exit
|
||||
|
@ -719,22 +719,22 @@
|
|||
Otherwise, it invokes the appropriate format handler to open the
|
||||
file (see @scheme[handler:insert-format-handler]).
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{If @scheme[filename] is a string, this function checks the
|
||||
result of @scheme[group:get-the-frame-group] to see if the
|
||||
@scheme[filename] is already open by a frame in the group.
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{If so, it returns the frame.}
|
||||
@item{If not, this function calls
|
||||
@scheme[handler:find-format-handler] with
|
||||
@scheme[filename].
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{If a handler is found, it is applied to
|
||||
@scheme[filename] and it's result is the
|
||||
final result.}
|
||||
@item{If not, @scheme[make-default] is used.}}}}}
|
||||
@item{If not, @scheme[make-default] is used.}]}]}
|
||||
@item{If @scheme[filename] is @scheme[#f], @scheme[make-default]
|
||||
is used.}}})
|
||||
is used.}]})
|
||||
|
||||
(parameter-doc
|
||||
handler:current-create-new-window
|
||||
|
@ -966,13 +966,13 @@
|
|||
@{This returns a keymap for handling standard editing operations. It
|
||||
binds these keys:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme["z"]: undo}
|
||||
@item{@scheme["y"]: redo}
|
||||
@item{@scheme["x"]: cut}
|
||||
@item{@scheme["c"]: copy}
|
||||
@item{@scheme["v"]: paste}
|
||||
@item{@scheme["a"]: select all}}
|
||||
@item{@scheme["a"]: select all}]
|
||||
where each key is prefixed with the menu-shortcut key, based on the
|
||||
platform. Under unix, the shortcut is @scheme["a:"]; under windows
|
||||
the shortcut key is @scheme["c:"] and under MacOS, the shortcut key
|
||||
|
@ -1055,7 +1055,7 @@
|
|||
|
||||
This function extends a @scheme[keymap%] with the following
|
||||
functions:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@mapdesc[ring-bell any] --- Rings the bell
|
||||
(using @scheme[bell]) and removes the search panel from the frame,
|
||||
if there.}
|
||||
|
@ -1128,12 +1128,12 @@
|
|||
@item{@mapdesc[end-macro key] --- Stops building a keyboard macro}
|
||||
@item{@mapdesc[do-macro key] --- Executes the last keyboard macro}
|
||||
@item{@mapdesc[toggle-overwrite key] --- Toggles overwriting
|
||||
mode}}
|
||||
mode}]
|
||||
|
||||
These functions are bound to the following keys
|
||||
(C = control, S = shift, A = alt, M = ``meta'', D = command):
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{C-g : ``ring-bell''}
|
||||
@item{M-C-g : ``ring-bell''}
|
||||
@item{C-c C-g : ``ring-bell''}
|
||||
|
@ -1213,7 +1213,7 @@
|
|||
@item{MIDDLEBUTTON : ``paste-click-region''}
|
||||
@item{C-RIGHTBUTTON : ``copy-clipboard''}
|
||||
@item{INSERT : ``toggle-overwrite''}
|
||||
@item{M-o : ``toggle-overwrite''}}})
|
||||
@item{M-o : ``toggle-overwrite''}]})
|
||||
|
||||
(proc-doc/names
|
||||
keymap:setup-search
|
||||
|
|
|
@ -12,7 +12,7 @@ arrow that the user can click to hide or show the sub-list's items.
|
|||
|
||||
The list control supports the following default keystrokes:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{Down: move to the next entry at the current level (skipping lower levels).}
|
||||
|
||||
|
@ -24,7 +24,7 @@ The list control supports the following default keystrokes:
|
|||
|
||||
@item{Return: open/close the current selected level (only valid for lists).}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
@local-table-of-contents[]
|
||||
|
|
|
@ -14,13 +14,13 @@ Sets @scheme[port]'s display handler (via
|
|||
@scheme[port-display-handler]) so that when it encounters these
|
||||
values:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{exact, real, non-integral numbers}
|
||||
|
||||
@item{syntax objects}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
it uses @scheme[write-special] to send snips to the port,
|
||||
instead of those values. Otherwise, it behaves like the
|
||||
|
|
|
@ -72,7 +72,7 @@ user to create a new directory.
|
|||
|
||||
The @scheme[filters] argument is one of:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme[(list (list _filter-name _filter-glob) ...)] --- a
|
||||
list of pattern names (e.g., @scheme["Scheme Files"]) and glob
|
||||
|
@ -89,7 +89,7 @@ The @scheme[filters] argument is one of:
|
|||
@scheme["*.*"] under Windows and @scheme["*"] on other
|
||||
platforms.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
The @scheme[show-file?] predicate is used to filter file paths that
|
||||
are shown in the dialog. The predicate is applied to the file name as
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
and should return the style-name that the token should be colored.
|
||||
|
||||
get-token takes an input port and returns the next token as 5 values:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{
|
||||
An unused value. This value is intended to represent the textual
|
||||
component of the token and may be used as such in the future.}
|
||||
|
@ -34,12 +34,12 @@
|
|||
@item{
|
||||
The starting position of the token.}
|
||||
@item{
|
||||
The ending position of the token.}}
|
||||
The ending position of the token.}]
|
||||
|
||||
get-token will usually be implemented with a lexer using the
|
||||
@scheme[parser-tools/lex] library.
|
||||
get-token must obey the following invariants:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{
|
||||
Every position in the buffer must be accounted for in exactly one
|
||||
token.}
|
||||
|
@ -58,7 +58,7 @@
|
|||
@verbatim{" 1 2 3"}
|
||||
would result in a single string token modifying previous tokens. To
|
||||
handle these situations, get-token must treat the first line as a
|
||||
single token.}}
|
||||
single token.}]
|
||||
|
||||
@scheme[pairs] is a list of different kinds of matching parens. The second
|
||||
value returned by get-token is compared to this list to see how the
|
||||
|
|
|
@ -223,7 +223,7 @@ framework)) @(require (for-label scheme/gui)) @(require
|
|||
If that returns @scheme[#t],
|
||||
it checks for one of the these three conditions:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{
|
||||
@scheme[exit:exiting?]
|
||||
returns @scheme[#t]}
|
||||
|
@ -233,7 +233,7 @@ framework)) @(require (for-label scheme/gui)) @(require
|
|||
@scheme[group:get-the-frame-group], or}
|
||||
@item{the procedure
|
||||
@scheme[exit:user-oks-exit]
|
||||
returns @scheme[#t].}}
|
||||
returns @scheme[#t].}]
|
||||
If any of those conditions hold, the
|
||||
method returns @scheme[#t].
|
||||
}
|
||||
|
|
|
@ -12,10 +12,10 @@ The framework provides a number of mixins, classes and
|
|||
functions designed to help you build a complete application
|
||||
program on top of the @scheme[scheme/gui] library.
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@bold{Entire Framework}
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme[(require #, @schememodname[framework])]
|
||||
|
||||
|
@ -41,7 +41,7 @@ program on top of the @scheme[scheme/gui] library.
|
|||
@scheme[framework^]. It imports the @scheme[mred^] signature.
|
||||
|
||||
}
|
||||
}}
|
||||
]}
|
||||
@item{
|
||||
@bold{Test Suite Engine}
|
||||
|
||||
|
@ -85,7 +85,7 @@ This library is here for backwards compatibility. The
|
|||
functionality in it has moved into the framework proper, in
|
||||
the @secref["editor-snip"] section.
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@bold{Thanks}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ An @scheme[area-container<%>] is a container @scheme[area<%>].
|
|||
|
||||
All @scheme[area-container<%>] classes accept the following named
|
||||
instantiation arguments:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@indexed-scheme[border] --- default is @scheme[0]; passed to
|
||||
@method[area-container<%> border]}
|
||||
|
@ -17,7 +17,7 @@ All @scheme[area-container<%>] classes accept the following named
|
|||
@scheme['(center top)] for @scheme[vertical-panel%]; the list
|
||||
elements are passed to
|
||||
@method[area-container<%> set-alignment]}
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ An @scheme[area<%>] object is either a window or a windowless
|
|||
|
||||
All @scheme[area<%>] classes accept the following named instantiation
|
||||
arguments:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@indexed-scheme[min-width] --- default is the initial graphical minimum width; passed to
|
||||
@method[area<%> min-width]}
|
||||
|
@ -20,7 +20,7 @@ All @scheme[area<%>] classes accept the following named instantiation
|
|||
@method[area<%> stretchable-width]}
|
||||
@item{@indexed-scheme[stretchable-height] --- default is class-specific; passed to
|
||||
@method[area<%> stretchable-height]}
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -142,10 +142,10 @@ information@|details|, even if the editor currently has delayed refreshing (see
|
|||
(make-splice
|
||||
(list
|
||||
@p{Be sure to use the following methods to start/end drawing:}
|
||||
@itemize{@item{@method[dc<%> start-doc]}
|
||||
@itemize[@item{@method[dc<%> start-doc]}
|
||||
@item{@method[dc<%> start-page]}
|
||||
@item{@method[dc<%> end-page]}
|
||||
@item{@method[dc<%> end-doc]}}
|
||||
@item{@method[dc<%> end-doc]}]
|
||||
@p{Attempts to use a drawing method outside of an active page raises an exception.})))
|
||||
|
||||
(define reference-doc '(lib "scribblings/reference/reference.scrbl"))
|
||||
|
|
|
@ -26,7 +26,7 @@ A @scheme[canvas%] object is a general-purpose window for drawing
|
|||
|
||||
The @scheme[style] argument indicates one or more of the following styles:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme['border] --- gives the canvas a thin border}
|
||||
|
||||
|
@ -63,7 +63,7 @@ The @scheme[style] argument indicates one or more of the following styles:
|
|||
later by calling @scheme[parent]'s @method[area-container<%> add-child]
|
||||
method}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
The @scheme['hscroll] and @scheme['vscroll] styles create a
|
||||
canvas with an initially inactive scrollbar. The scrollbars are
|
||||
|
|
|
@ -10,7 +10,7 @@ To draw onto a canvas, get its device context (see
|
|||
@method[canvas<%> get-dc]).
|
||||
|
||||
The @scheme[canvas<%>] interface is implemented by two classes:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme[canvas%] --- a canvas for arbitrary drawing and
|
||||
event handling}
|
||||
|
@ -18,7 +18,7 @@ The @scheme[canvas<%>] interface is implemented by two classes:
|
|||
@item{@scheme[editor-canvas%] --- a canvas for displaying
|
||||
@scheme[editor<%>] objects}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
@defmethod[(get-canvas-background)
|
||||
|
|
|
@ -14,7 +14,7 @@ A @scheme[control-event%] object contains information about a
|
|||
[time-stamp (and/c exact? integer?) 0])]{
|
||||
|
||||
The @scheme[event-type] argument is one of the following:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme['button] --- for @scheme[button%] clicks}
|
||||
@item{@scheme['check-box] --- for @scheme[check-box%] toggles}
|
||||
@item{@scheme['choice] --- for @scheme[choice%] item selections}
|
||||
|
@ -28,7 +28,7 @@ The @scheme[event-type] argument is one of the following:
|
|||
@item{@scheme['menu-popdown] --- for @scheme[popup-menu%] callbacks (item selected)}
|
||||
@item{@scheme['menu-popdown-none] --- for @scheme[popup-menu%] callbacks (no item selected)}
|
||||
@item{@scheme['tab-panel] --- for @scheme[tab-panel%] tab changes}
|
||||
}
|
||||
]
|
||||
|
||||
This value is extracted out of a @scheme[control-event%] object with
|
||||
the
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
The @scheme[control<%>] interface is implemented by the built-in
|
||||
control window classes:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme[message%]}
|
||||
@item{@scheme[button%]}
|
||||
@item{@scheme[check-box%]}
|
||||
|
@ -15,7 +15,7 @@ The @scheme[control<%>] interface is implemented by the built-in
|
|||
@item{@scheme[radio-box%]}
|
||||
@item{@scheme[choice%]}
|
||||
@item{@scheme[list-box%]}
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ relative to its top-left corner.
|
|||
The second case creates a cursor using a stock cursor, specified
|
||||
as one of the following:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme['arrow] --- the default cursor}
|
||||
|
||||
|
@ -60,7 +60,7 @@ as one of the following:
|
|||
|
||||
@item{@scheme['size-nw/se] --- arrows up-left and down-right}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
If the cursor is created successfully, @method[cursor% ok?]
|
||||
returns @scheme[#t], otherwise the cursor object cannot be
|
||||
|
|
|
@ -56,7 +56,7 @@ If the @scheme[x] or @scheme[y] argument is not @scheme[#f], it
|
|||
The @scheme[style] flags adjust the appearance of the dialog on some
|
||||
platforms:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme['no-caption] --- omits the title bar for the dialog
|
||||
(Windows)}
|
||||
|
@ -68,7 +68,7 @@ The @scheme[style] flags adjust the appearance of the dialog on some
|
|||
@item{@scheme['no-sheet] --- uses a movable window for the dialog,
|
||||
even if a parent window is provided (Mac OS X)}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
Even if the dialog is not shown, a few notification events may be
|
||||
queued for the dialog on creation. Consequently, the new dialog's
|
||||
|
|
|
@ -190,7 +190,7 @@ Displays a message to the user in a (modal) dialog, using
|
|||
breaking lines.
|
||||
|
||||
The style must include exactly one of the following:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme['ok] --- the dialog only has an @onscreen{OK} button
|
||||
and always returns @scheme['ok].}
|
||||
|
@ -208,7 +208,7 @@ The style must include exactly one of the following:
|
|||
labels, so that the user does not have to read the message text
|
||||
carefully to make a selection.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
In addition, @scheme[style] can contain @scheme['caution] to make the
|
||||
dialog use a caution icon instead of the application (or generic
|
||||
|
@ -262,7 +262,7 @@ If the user clicks the button labelled @scheme[button1-label], a @scheme[1]
|
|||
If @scheme[style] does not include @scheme['number-order], the order of
|
||||
the buttons is platform-specific, and labels should be assigned to
|
||||
the buttons based on their role:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{Button 1 is the normal action, and it is usually the default
|
||||
button. For example, if the dialog has an @onscreen{OK} button, it is
|
||||
|
@ -279,7 +279,7 @@ If @scheme[style] does not include @scheme['number-order], the order of
|
|||
Mac OS X, it is left-aligned in the dialog). Use this button only
|
||||
for three-button dialogs.}
|
||||
|
||||
}
|
||||
]
|
||||
Despite the above guidelines, any combination of visible buttons is
|
||||
allowed in the dialog.
|
||||
|
||||
|
@ -323,13 +323,13 @@ See also @scheme[message+check-box/custom].
|
|||
|
||||
Like @scheme[message-box], except that
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{the dialog contains a check box whose label is @scheme[check-label];}
|
||||
@item{the result is two values: the @scheme[message-box] result, and a
|
||||
boolean indicating whether the box was checked; and}
|
||||
@item{@scheme[style] can contain @scheme['checked] to indicate that the check box
|
||||
should be initially checked.}
|
||||
}}
|
||||
]}
|
||||
|
||||
@defproc[(message+check-box/custom [title label-string?]
|
||||
[message string]
|
||||
|
@ -346,13 +346,13 @@ Like @scheme[message-box], except that
|
|||
(one-of/c 1 2 3 close-result)]{
|
||||
|
||||
Like @scheme[message-box/custom], except that
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{the dialog contains a check box whose label is @scheme[check-label];}
|
||||
@item{the result is two values: the @scheme[message-box] result, and a
|
||||
boolean indicating whether the box was checked; and}
|
||||
@item{@scheme[style] can contain @scheme['checked] to indicate that the check box
|
||||
should be initially checked.}
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -264,11 +264,11 @@ If @scheme[refresh?] is not @scheme[#f], then the editor is requesting
|
|||
to be updated immediately.
|
||||
|
||||
The @scheme[bias] argument is one of:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme['start] --- if the range doesn't fit in the visible area, show the top-left region}
|
||||
@item{@scheme['none] --- no special scrolling instructions}
|
||||
@item{@scheme['end] --- if the range doesn't fit in the visible area, show the bottom-right region}
|
||||
}
|
||||
]
|
||||
|
||||
The return value is @scheme[#t] if the @techlink{display} is scrolled,
|
||||
@scheme[#f] if not (either because the requested region is already
|
||||
|
|
|
@ -34,7 +34,7 @@ If a canvas is initialized with @scheme[#f] for @scheme[editor],
|
|||
|
||||
The @scheme[style] list can contain the following flags:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme['no-border] --- omits a border around the canvas}
|
||||
|
||||
|
@ -73,7 +73,7 @@ The @scheme[style] list can contain the following flags:
|
|||
@item{@scheme['transparent] --- the canvas is ``erased'' before an
|
||||
update using it's parent window's background}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
While vertical scrolling of text editors is based on lines,
|
||||
horizontal scrolling and pasteboard vertical scrolling is based on a
|
||||
|
@ -276,7 +276,7 @@ If @scheme[refresh?] is not @scheme[#f], then the editor is updated
|
|||
immediately after a successful scroll.
|
||||
|
||||
The @scheme[bias] argument is one of:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme['start] --- if the range doesn't fit in the visible
|
||||
area, show the top-left region}
|
||||
|
@ -286,7 +286,7 @@ The @scheme[bias] argument is one of:
|
|||
@item{@scheme['end] --- if the range doesn't fit in the visible area,
|
||||
show the bottom-right region}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
The return value is @scheme[#t] if the @techlink{display} is scrolled, @scheme[#f]
|
||||
if not (either because the requested region is already visible,
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
Given a @scheme[keymap%] object, the keymap is loaded with mappable
|
||||
functions that apply to all @scheme[editor<%>] objects:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme["copy-clipboard"]}
|
||||
@item{@scheme["copy-append-clipboard"]}
|
||||
@item{@scheme["cut-clipboard"]}
|
||||
|
@ -23,7 +23,7 @@ Given a @scheme[keymap%] object, the keymap is loaded with mappable
|
|||
@item{@scheme["undo"]}
|
||||
@item{@scheme["redo"]}
|
||||
@item{@scheme["select-all"]}
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@ See also
|
|||
|
||||
Given a @scheme[keymap%] object, the table is loaded with functions
|
||||
that apply to all @scheme[text%] objects:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme["forward-character"]}
|
||||
@item{@scheme["backward-character"]}
|
||||
@item{@scheme["previous-line"]}
|
||||
|
@ -85,7 +85,7 @@ Given a @scheme[keymap%] object, the table is loaded with functions
|
|||
@item{@scheme["delete-line"]}
|
||||
@item{@scheme["undo"]}
|
||||
@item{@scheme["redo"]}
|
||||
}
|
||||
]
|
||||
|
||||
See also
|
||||
@scheme[add-editor-keymap-functions].
|
||||
|
|
|
@ -466,7 +466,7 @@ Returns the name of a style to be used for newly inserted text,
|
|||
Performs a generic edit command. The @scheme[op] argument must be a
|
||||
valid edit command, one of:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme['undo] --- undoes the last operation}
|
||||
@item{@scheme['redo] --- undoes the last undo}
|
||||
@item{@scheme['clear] --- deletes the current selection}
|
||||
|
@ -481,7 +481,7 @@ valid edit command, one of:
|
|||
@method[editor<%> on-new-box] .}
|
||||
@item{@scheme['insert-image] --- gets a filename from the user and inserts the image as an @techlink{item} in this editor; see also
|
||||
@method[editor<%> on-new-image-snip] .}
|
||||
}
|
||||
]
|
||||
|
||||
If @scheme[recursive?] is not @scheme[#f], then the command is passed on to
|
||||
any active snips of this editor (i.e., snips which own the caret).
|
||||
|
@ -1074,7 +1074,7 @@ prompted for a name.
|
|||
The possible values for @scheme[format] are listed below. A single set of
|
||||
@scheme[format] values are used for loading and saving files:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme['guess] --- guess the format based on
|
||||
extension and/or contents; when saving a file, this is the same as
|
||||
|
@ -1097,7 +1097,7 @@ extension and/or contents; when saving a file, this is the same as
|
|||
(@scheme[text%] only); when writing, change automatic newlines (from
|
||||
word-wrapping) into real carriage returns}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
In a @scheme[text%] instance, the format returned from @method[text%
|
||||
get-file-format] is always one of @scheme['standard], @scheme['text],
|
||||
|
@ -1713,7 +1713,7 @@ The @scheme[output-mode] setting is used for Windows and Mac OS X. It
|
|||
using the platform-specific standard printing mechanism. The possible
|
||||
values are
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme['standard] --- print using the platform-standard
|
||||
mechanism (via a @scheme[printer-dc%]) under Windows and
|
||||
|
@ -1722,7 +1722,7 @@ The @scheme[output-mode] setting is used for Windows and Mac OS X. It
|
|||
@item{@scheme['postscript] --- print to a PostScript file (via a
|
||||
@scheme[post-script-dc%])}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
If @scheme[parent] is not @scheme[#f], it is used as the parent window
|
||||
for configuration dialogs (for either PostScript or platform-standard
|
||||
|
@ -1807,7 +1807,7 @@ The stream provides either new mappings for names in the editor's
|
|||
when the editor was written to the stream; see also @method[editor<%>
|
||||
write-to-file]).
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{In the former case, if the @scheme[overwrite-styles?] argument
|
||||
is @scheme[#f], then each style name in the loaded file that is already
|
||||
|
@ -1818,7 +1818,7 @@ The stream provides either new mappings for names in the editor's
|
|||
@item{In the latter case, the editor's style list will be changed to
|
||||
the previously-read list.}
|
||||
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
|
@ -2105,7 +2105,7 @@ If @scheme[#f] is provided as the new owner, then the local focus is
|
|||
|
||||
The domain of focus-setting is one of:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme['immediate] --- only set the focus owner within the
|
||||
editor}
|
||||
|
@ -2117,7 +2117,7 @@ The domain of focus-setting is one of:
|
|||
@item{@scheme['global] --- make this editor or the new focus
|
||||
owner get the keyboard focus among all elements in the editor's frame}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
@MonitorMethod[@elem{The focus state of an editor} @elem{by the
|
||||
system} @elem{@method[editor<%> on-focus]} @elem{focus}]
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
The editor toolbox provides a foundation for two common kinds of
|
||||
applications:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@italic{Programs that need a sophisticated text editor} ---
|
||||
The simple text field control is inadequate for text-intensive
|
||||
|
@ -19,7 +19,7 @@ The editor toolbox provides a foundation for two common kinds of
|
|||
lines and boxes, but many applications need an interactive canvas,
|
||||
where the user can drag and resize individual objects.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
Both kinds of applications need an extensible editor that can handle
|
||||
text, images, programmer-defined items, and even embedded
|
||||
|
@ -27,7 +27,7 @@ Both kinds of applications need an extensible editor that can handle
|
|||
editor toolbox therefore provides two kinds of editors via two
|
||||
classes:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme[text%] --- in a @deftech{text editor}, items are
|
||||
automatically positioned in a paragraph flow.}
|
||||
|
@ -35,7 +35,7 @@ Both kinds of applications need an extensible editor that can handle
|
|||
@item{@scheme[pasteboard%] --- in a @deftech{pasteboard editor},
|
||||
items are explicitly positioned and dragable.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
This editor architecture addresses the full range of real-world
|
||||
issues for an editor---including cut-and-paste, extensible file
|
||||
|
@ -160,7 +160,7 @@ Applications that use the editor classes typically derive new versions
|
|||
The editor toolbox supports extensible and nestable editors by
|
||||
decomposing an editor assembly into three functional parts:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{The @deftech{editor} itself stores the state of the text or
|
||||
pasteboard and handles most events and editing operations. The
|
||||
|
@ -183,7 +183,7 @@ The editor toolbox supports extensible and nestable editors by
|
|||
@scheme[editor-snip%] class also acts as a display for embedded
|
||||
editors.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
These three parts are illustrated by a simple word processor. The
|
||||
editor corresponds to the text document. The editor object receives
|
||||
|
@ -275,7 +275,7 @@ Styles are hierarchical: each style is defined in terms of another
|
|||
style is encoded in a @deftech{style delta} (or simply
|
||||
@deftech{delta}). A delta encodes changes such as
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{change the font family to @italic{X};}
|
||||
|
||||
|
@ -285,7 +285,7 @@ Styles are hierarchical: each style is defined in terms of another
|
|||
|
||||
@item{change everything to match the style description @italic{Z}.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
Style objects are never created separately; rather, they are always
|
||||
created through a @deftech{style list}, an instance of the
|
||||
|
@ -298,7 +298,7 @@ Style objects are never created separately; rather, they are always
|
|||
|
||||
Each new style is defined in one of two ways:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{A @deftech{derived style} is defined in terms of a base style
|
||||
and a delta. Every style (except for the root style) has a base
|
||||
|
@ -317,7 +317,7 @@ Each new style is defined in one of two ways:
|
|||
character style is the shift style. However, FrameMaker allows only
|
||||
those two levels; with join styles support any number of levels.)}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
@index*['("Standard style") (list @elem{@scheme["Standard"]
|
||||
style})]{Usually}, when text is inserted into a text editor, it
|
||||
|
@ -383,7 +383,7 @@ The editor file data format can be embedded within another file, and
|
|||
Graceful and extensible encoding of snips requires that
|
||||
two issues are addressed:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{The encoding function for a snip can be associated with the snip
|
||||
itself. To convert a snip from an encoded representation (e.g., as
|
||||
|
@ -407,7 +407,7 @@ Graceful and extensible encoding of snips requires that
|
|||
each editor data object has an @deftech{editor data class}, which is
|
||||
an instance of the @scheme[editor-data-class%] class.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
Snip classes, snip data, and snip data classes solve problems related
|
||||
to encoding and decoding snips. In an application that has no need
|
||||
|
@ -472,7 +472,7 @@ Just as a snip must be associated with a snip class to be decoded (see
|
|||
|
||||
To store and load information about a snip or region in an editor:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{derive new classes from @scheme[editor-data%] and
|
||||
@scheme[editor-data-class%].}
|
||||
|
@ -488,7 +488,7 @@ To store and load information about a snip or region in an editor:
|
|||
not for file-saving encoding; see @|globaleditordatadiscuss| for
|
||||
information on extending the file format.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
@subsection[#:tag "globaleditordata"]{Global Data: Headers and Footers}
|
||||
|
@ -497,7 +497,7 @@ The editor file format provides for adding extra global data in
|
|||
special header and footer sections. To save and load special header
|
||||
and/or footer records:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{Pick a name for each header/footer record. This name should not
|
||||
conflict with any other header/footer record name in use, and no one
|
||||
|
@ -512,7 +512,7 @@ The editor file format provides for adding extra global data in
|
|||
@method[editor<%> read-header-from-file] and/or @method[editor<%>
|
||||
read-footer-from-file] methods.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
When an editor is saved, the methods @method[editor<%>
|
||||
write-headers-to-file] and @method[editor<%> write-footers-to-file]
|
||||
|
@ -564,7 +564,7 @@ In plain text editors, there is a simple correlation between
|
|||
|
||||
Text can be extracted from an editor in either of two forms:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@deftech{Simple text}, where there is one character per
|
||||
@techlink{item}. @techlink{Item}s that are characters are mapped to
|
||||
|
@ -582,7 +582,7 @@ Text can be extracted from an editor in either of two forms:
|
|||
``flattened'' because the editor's @techlink{item}s have been reduced
|
||||
to a linear sequence of characters.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
@section[#:tag "drawcaretinfo"]{Caret Ownership}
|
||||
|
||||
|
@ -604,7 +604,7 @@ When an editor or snip is drawn, an argument to the drawing method
|
|||
specifies whether the caret should be drawn with the data. This
|
||||
argument can be any of (in increasing order):
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@indexed-scheme['no-caret] --- The caret should not be drawn at
|
||||
all.}
|
||||
|
@ -616,7 +616,7 @@ When an editor or snip is drawn, an argument to the drawing method
|
|||
@item{@indexed-scheme['show-caret] --- The caret should be drawn to show
|
||||
keyboard focus ownership.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
The @scheme['show-inactive-caret] display mode is useful for showing
|
||||
selection ranges in text editors that do not have the focus. This
|
||||
|
@ -668,7 +668,7 @@ Note that there is no attempt to save clickback information when a
|
|||
Instances of @scheme[editor<%>] have three levels of internal
|
||||
locking:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{write locking --- When an editor is internally locked for
|
||||
writing, the abstract content of the editor cannot be changed (e.g.,
|
||||
|
@ -696,7 +696,7 @@ Instances of @scheme[editor<%>] have three levels of internal
|
|||
snips. The @method[editor<%> locked-for-read?] method reports
|
||||
whether an editor is currently locked for reading.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
The internal lock for an editor is @italic{not} affected by calls to
|
||||
@method[editor<%> lock].
|
||||
|
@ -727,7 +727,7 @@ Nevertheless, the editor supports certain concurrent patterns
|
|||
refreshes do not prevent editor modifications, the following are
|
||||
guaranteed:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{When an editor's @method[editor<%> refresh] method is
|
||||
called during an edit sequence (which is started by
|
||||
|
@ -749,7 +749,7 @@ Nevertheless, the editor supports certain concurrent patterns
|
|||
delegated to the edit-sequence thread, to be called when the edit
|
||||
sequence is complete.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
Thus, disabling an @scheme[editor-canvas%] object (using
|
||||
@method[window<%> enable]) is sufficient to ensure that a
|
||||
|
|
|
@ -16,13 +16,13 @@ A global object @scheme[the-editor-wordbreak-map] is created
|
|||
A wordbreak objects implements a mapping from each character to a list
|
||||
of symbols. The following symbols are legal elements of the list:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@indexed-scheme['caret]}
|
||||
@item{@indexed-scheme['line]}
|
||||
@item{@indexed-scheme['selection]}
|
||||
@item{@indexed-scheme['user1]}
|
||||
@item{@indexed-scheme['user2]}
|
||||
}
|
||||
]
|
||||
|
||||
The presence of a flag in a character's value indicates that the
|
||||
character does not break a word when searching for breaks using the
|
||||
|
|
|
@ -158,7 +158,7 @@ If @scheme[v] is @indexed-scheme['wait], and @scheme[yield] is called
|
|||
in the handler thread of an eventspace, then @scheme[yield] starts
|
||||
processing events in that eventspace until
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{no top-level windows in the eventspace are visible;}
|
||||
|
||||
|
@ -170,7 +170,7 @@ If @scheme[v] is @indexed-scheme['wait], and @scheme[yield] is called
|
|||
with @scheme['root] (i.e., creating a @scheme['root] menu bar
|
||||
prevents an eventspace from ever unblocking).}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
When called in a non-handler thread, @scheme[yield] returns
|
||||
immediately. In either case, the result is @scheme[#t].
|
||||
|
|
|
@ -60,7 +60,7 @@ they are created).
|
|||
The @scheme[style] flags adjust the appearance of the frame on
|
||||
some platforms:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme['no-resize-border] --- omits the resizeable border
|
||||
around the window (Windows, X MWM) or grow box in the bottom right
|
||||
|
@ -102,7 +102,7 @@ some platforms:
|
|||
background (Mac OS X); this style is ignored when
|
||||
@scheme['no-caption] is specified}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
If the @scheme['mdi-child] style is specified, the @scheme[parent] must be
|
||||
a frame with the @scheme['mdi-parent] style, otherwise @|MismatchExn|.
|
||||
|
@ -274,7 +274,7 @@ Sets the large or small icon bitmap for this frame. Future changes to
|
|||
|
||||
The icon is used in a platform-specific way:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{Windows --- the small icon is used for the frame's icon (in the
|
||||
top-left) and in the task bar, and the large icon is used for
|
||||
|
@ -286,7 +286,7 @@ The icon is used in a platform-specific way:
|
|||
as Windows, and others use the small icon when iconifying the
|
||||
frame; the large icon is ignored.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
The bitmap for either icon can be any size, but most platforms scale
|
||||
the small bitmap to 16 by 16 pixels and the large bitmap to 32 by 32
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
For documentation purposes, the graphics toolbox is organized into
|
||||
three parts:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{The @deftech{windowing toolbox}, for implementing form-filling
|
||||
GUI programs (such as a database query window) using buttons, menus,
|
||||
|
@ -24,7 +24,7 @@ For documentation purposes, the graphics toolbox is organized into
|
|||
browser). The editor toolbox is described in
|
||||
@secref["editor-overview"].}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
These three parts roughly represent layers of increasing
|
||||
sophistication. Simple GUI programs access only the windowing toolbox
|
||||
|
|
|
@ -67,7 +67,7 @@ Under Mac OS X, if a control-key press is combined with a mouse button
|
|||
Gets the virtual key code for the key event. The virtual key code is
|
||||
either a character or a special key symbol, one of the following:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@indexed-scheme['start]}
|
||||
@item{@indexed-scheme['cancel]}
|
||||
@item{@indexed-scheme['clear]}
|
||||
|
@ -138,13 +138,13 @@ Gets the virtual key code for the key event. The virtual key code is
|
|||
@item{@indexed-scheme['wheel-down] --- mouse wheel down one notch}
|
||||
@item{@indexed-scheme['release] --- indicates a key-release event}
|
||||
@item{@indexed-scheme['press] --- indicates a key-press event; usually only from @scheme[get-key-release-code]}
|
||||
}
|
||||
]
|
||||
|
||||
The special key symbols attempt to capture useful keys that have no
|
||||
standard ASCII representation. A few keys have standard
|
||||
representations that are not obvious:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme[#\space] --- the space bar}
|
||||
|
||||
|
@ -159,7 +159,7 @@ The special key symbols attempt to capture useful keys that have no
|
|||
|
||||
@item{@scheme[#\rubout] --- the delete key}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
If a suitable special key symbol or ASCII representation is not
|
||||
available, @scheme[#\nul] (the NUL character) is reported.
|
||||
|
|
|
@ -8,13 +8,13 @@ A @scheme[keymap%] object is used by @scheme[editor<%>] objects to
|
|||
extensible way. Keymaps can be used without editors, as well. A
|
||||
@scheme[keymap%] object contains
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{a mapping from function names to event-handling procedures; and}
|
||||
|
||||
@item{a mapping from key and mouse sequences to function names.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
A handler procedure in a keymap is invoked with a @scheme[key-event%]
|
||||
object or a @scheme[mouse-event%] object. It is also given another
|
||||
|
@ -163,7 +163,7 @@ Maps an input state sequence to a function name using a string-encoded
|
|||
|
||||
The modifier identifiers are:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@litchar{s:} --- All platforms: Shift}
|
||||
|
||||
|
@ -181,7 +181,7 @@ The modifier identifiers are:
|
|||
@item{@litchar{?:} --- All platforms: allow match to character produced by opposite
|
||||
use of Shift, AltGr/Option, and/or Caps Lock, when available; see
|
||||
@xmethod[key-event% get-other-shift-key-code]}
|
||||
}
|
||||
]
|
||||
|
||||
If a particular modifier is not mentioned in a state string, it
|
||||
matches states whether that modifier is pressed or not pressed. A
|
||||
|
@ -195,7 +195,7 @@ A key identifier can be either a character on the keyboard (e.g.,
|
|||
@litchar{a}, @litchar{2}, @litchar{?}) or a special name. The
|
||||
special names are as follows:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@litchar{leftbutton} (button down)}
|
||||
@item{@litchar{rightbutton}}
|
||||
@item{@litchar{middlebutton}}
|
||||
|
@ -270,7 +270,7 @@ A key identifier can be either a character on the keyboard (e.g.,
|
|||
@item{@litchar{f22}}
|
||||
@item{@litchar{f23}}
|
||||
@item{@litchar{f24}}
|
||||
}
|
||||
]
|
||||
|
||||
For a special keyword, the capitalization does not matter. However,
|
||||
capitalization is important for single-letter keynames. Furthermore,
|
||||
|
@ -297,7 +297,7 @@ A state can match multiple state strings mapped in a keymap (or keymap
|
|||
|
||||
Examples:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme["space"] --- matches whenever the space bar is pressed,
|
||||
regardless of the state of modifiers keys.}
|
||||
|
@ -322,7 +322,7 @@ Examples:
|
|||
that produces @litchar{+}, even if producing @litchar{+} normally requires
|
||||
pressing Shift.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
A call to @method[keymap% map-function] that would map a particular
|
||||
key sequence both as a prefix and as a complete sequence raises an
|
||||
|
|
|
@ -59,7 +59,7 @@ The @scheme[callback] procedure is called when the user changes the list
|
|||
|
||||
The @scheme[style] specification must include exactly one of the
|
||||
following:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme['single] --- Creates a single-selection list.}
|
||||
|
||||
|
@ -73,7 +73,7 @@ The @scheme[style] specification must include exactly one of the
|
|||
clicked item. Use this style for a list when multiple selections are
|
||||
the rule rather than the exception.}
|
||||
|
||||
}
|
||||
]
|
||||
The @scheme['multiple] and @scheme['extended] styles determine a
|
||||
platform-independent interpretation of unmodified mouse clicks, but
|
||||
dragging, shift-clicking, control-clicking, etc. have
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
A list control gives the user a list of string items to choose from.
|
||||
There are two built-in classes that implement
|
||||
@scheme[list-control<%>]:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme[choice%] --- presents the list in a popup menu (so
|
||||
the user can choose only one item at a time)}
|
||||
|
@ -15,7 +15,7 @@ A list control gives the user a list of string items to choose from.
|
|||
allowing the use to choose one item (if the style includes
|
||||
@scheme['single]) or any number of items}
|
||||
|
||||
}
|
||||
]
|
||||
In either case, the set of user-selectable items can be changed
|
||||
dynamically.
|
||||
|
||||
|
|
|
@ -81,19 +81,19 @@ Finds a platform-specific (and possibly user- or machine-specific)
|
|||
The result depends on @scheme[what], and a @scheme[#f] result is only
|
||||
possible when @scheme[what] is @scheme['x-display]:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme['init-file] returns the path to the user-specific
|
||||
initialization file (containing Scheme code). The directory part of
|
||||
the path is the same path as returned for @scheme['init-dir] by
|
||||
MzScheme's @scheme[find-system-path]. The file name is
|
||||
platform-specific:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@|AllUnix|: @indexed-file{.mredrc}}
|
||||
@item{Windows: @indexed-file{mredrc.ss}}
|
||||
|
||||
}}
|
||||
]}
|
||||
|
||||
@item{@scheme['setup-file] returns the path to the file
|
||||
containing resources used by @scheme[get-resource]; obsolete.}
|
||||
|
@ -104,7 +104,7 @@ The result depends on @scheme[what], and a @scheme[#f] result is only
|
|||
other platforms, or when neither @Flag{display} nor @envvar{DISPLAY}
|
||||
was specified, the result is @scheme[#f].}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
@ -161,7 +161,7 @@ The format of a resource entry depends on the platform. Windows
|
|||
@scheme[section] is one of the following strings, then @scheme[file]
|
||||
is ignored, and @scheme[entry] is used as a resource path:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@indexed-scheme["HKEY_CLASSES_ROOT"]}
|
||||
@item{@indexed-scheme["HKEY_CURRENT_CONFIG"]}
|
||||
|
@ -169,7 +169,7 @@ The format of a resource entry depends on the platform. Windows
|
|||
@item{@indexed-scheme["HKEY_LOCAL_MACHINE"]}
|
||||
@item{@indexed-scheme["HKEY_USERS"]}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
In that case, the @scheme[entry] argument is parsed as a resource entry
|
||||
path, followed by a backslash, followed by a value name. To get the
|
||||
|
@ -222,13 +222,13 @@ If no eventspace is provided, or if @scheme[#f] is provided, an
|
|||
|
||||
When @scheme[redirect-ports?] is true, the following parameters are
|
||||
initialized in the created eventspace's handler thread:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme[current-output-port] --- writes to the frame}
|
||||
@item{@scheme[current-error-port] --- writes to the frame}
|
||||
@item{@scheme[current-input-port] --- always returns @scheme[eof]}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
The keymap for the read-eval-print loop's editor is initialized by
|
||||
calling the current keymap initializer procedure, which is determined
|
||||
|
|
|
@ -31,7 +31,7 @@ See also @|mousekeydiscuss|.
|
|||
Creates a mouse event for a particular type of event. The event types
|
||||
are:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme['enter] --- mouse pointer entered the window}
|
||||
@item{@scheme['leave] --- mouse pointer left the window}
|
||||
@item{@scheme['left-down] --- left mouse button pressed}
|
||||
|
@ -41,7 +41,7 @@ Creates a mouse event for a particular type of event. The event types
|
|||
@item{@scheme['right-down] --- right mouse button pressed (Mac OS X: click with control key pressed)}
|
||||
@item{@scheme['right-up] --- right mouse button released (Mac OS X: release with control key pressed)}
|
||||
@item{@scheme['motion] --- mouse moved, with or without button(s) pressed}
|
||||
}
|
||||
]
|
||||
|
||||
See the corresponding @schemeidfont{get-} and @schemeidfont{set-}
|
||||
methods for information about @scheme[left-down],
|
||||
|
|
|
@ -812,7 +812,7 @@ Deselects all selected snips in the editor.
|
|||
|
||||
Selects, drags, and resizes snips:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{Clicking on a snip selects the snip. Shift-clicking extends
|
||||
the current selection with the snip.}
|
||||
|
@ -831,7 +831,7 @@ with the new snips.}
|
|||
@item{Clicking on a hiliting tab for a selected object resizes the
|
||||
object.}
|
||||
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ MrEd supports a number of preferences for global configuration. The
|
|||
|
||||
The following are the (case-sensitive) preference names used by MrEd:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@ResourceFirst{default-font-size} --- sets the default font size
|
||||
the basic style in a style list, and thus the default font size for
|
||||
|
@ -79,7 +79,7 @@ The following are the (case-sensitive) preference names used by MrEd:
|
|||
@scheme[clipboard<%>].}
|
||||
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
In addition, preference names built from font face names can provide
|
||||
or override default entries for the @scheme[font-name-directory<%>];
|
||||
|
|
|
@ -41,7 +41,7 @@ Gets the identity of the scrollbar that was modified by the event,
|
|||
|
||||
Returns the type of the event, one of the following:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme['top] --- user clicked a scroll-to-top button}
|
||||
@item{@scheme['bottom] --- user clicked a scroll-to-bottom button}
|
||||
@item{@scheme['line-up] --- user clicked an arrow to scroll up or left one step}
|
||||
|
@ -49,7 +49,7 @@ Returns the type of the event, one of the following:
|
|||
@item{@scheme['page-up] --- user clicked an arrow to scroll up or left one page}
|
||||
@item{@scheme['page-down] --- user clicked an arrow to scroll down or right one page}
|
||||
@item{@scheme['thumb] --- user dragged the scroll position indicator}
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -45,14 +45,14 @@ For a list of allowed key symbols, see @xmethod[key-event%
|
|||
Returns a list of symbols that indicates the keyboard prefix used for the menu
|
||||
item's keyboard shortcut. The allowed symbols for the list are the following:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme['alt] --- Meta (Windows and X only)}
|
||||
@item{@scheme['cmd] --- Command (Mac OS X only)}
|
||||
@item{@scheme['meta] --- Meta (X only)}
|
||||
@item{@scheme['ctl] --- Control}
|
||||
@item{@scheme['shift] --- Shift}
|
||||
@item{@scheme['option] --- Option (Mac OS X only)}
|
||||
}
|
||||
]
|
||||
|
||||
Under X, at most one of @scheme['alt] and @scheme['meta] can be
|
||||
supplied; the only difference between @scheme['alt] and
|
||||
|
|
|
@ -259,7 +259,7 @@ If @scheme[refresh?] is not @scheme[#f], then the editor is requesting to
|
|||
be updated immediately.
|
||||
|
||||
The @scheme[bias] argument is one of:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme['start] --- if the range doesn't fit in the visible area, show the top-left region}
|
||||
|
||||
|
@ -267,7 +267,7 @@ The @scheme[bias] argument is one of:
|
|||
|
||||
@item{@scheme['end] --- if the range doesn't fit in the visible area, show the bottom-right region}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
The result is @scheme[#t] if the editor is scrolled, @scheme[#f]
|
||||
otherwise.
|
||||
|
|
|
@ -13,7 +13,7 @@ In deriving a new @scheme[snip-class%] class, override the
|
|||
derived class (where each instance corresponds to a single snip
|
||||
class):
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{Set the classname using @method[snip-class% set-classname].}
|
||||
|
||||
|
@ -26,7 +26,7 @@ In deriving a new @scheme[snip-class%] class, override the
|
|||
name is inserted into the same class list multiple times, all
|
||||
but the first insertion is ignored.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
See also @|snipclassdiscuss|.
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ A direct instance of @scheme[snip%] is uninteresting. Useful snips are
|
|||
In deriving a new snip class, these methods must be overridden to
|
||||
create a useful snip:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@method[snip% get-extent]}
|
||||
|
||||
|
@ -37,14 +37,14 @@ create a useful snip:
|
|||
in the snip's administrator when the state changes the first
|
||||
time}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
If a snip can contain more than one @techlink{item}, then the snip's @techlink{count}
|
||||
must be maintained as well.
|
||||
|
||||
To define a class of snips that can be saved or cut-and-pasted:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{Create an instance of @scheme[snip-class%], implementing the
|
||||
@method[snip-class% read] method. Export the
|
||||
|
@ -59,18 +59,18 @@ To define a class of snips that can be saved or cut-and-pasted:
|
|||
|
||||
@item{Override the @method[snip% write] method.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
To define a class of snips that read specially with
|
||||
@scheme[open-input-text-editor]:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{Make your @scheme[snip%] class implement @scheme[readable-snip<%>].}
|
||||
|
||||
@item{Implement the @method[readable-snip<%> read-special] method.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
@ -320,7 +320,7 @@ Fills in all boxes with @scheme[0.0].
|
|||
Returns flags defining the behavior of the snip, a list of the
|
||||
following symbols:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@indexed-scheme['is-text] --- this is a text snip derived from
|
||||
@scheme[string-snip%]; do not set this flag}
|
||||
|
@ -357,7 +357,7 @@ following symbols:
|
|||
notification is given as a redundant call to @method[snip%
|
||||
set-admin]}
|
||||
|
||||
}}
|
||||
]}
|
||||
|
||||
|
||||
@defmethod[(get-num-scroll-steps)
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
A @scheme[style-delta%] object encapsulates a style change. The changes expressible
|
||||
by a delta include:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{changing the font family}
|
||||
@item{changing the font face}
|
||||
@item{changing the font size to a new value}
|
||||
|
@ -21,7 +21,7 @@ by a delta include:
|
|||
@item{dimming or brightening the foreground color, etc.}
|
||||
@item{changing the background color, etc.}
|
||||
@item{changing text backing transparency}
|
||||
}
|
||||
]
|
||||
|
||||
The @method[style-delta% set-delta] method is convenient for most
|
||||
style delta settings; it takes a high-level delta specification and
|
||||
|
@ -36,7 +36,7 @@ turns on a weight setting when it is not present and
|
|||
@scheme[weight-off] turns off a weight setting when it is
|
||||
present. These two interact precisely in the following way:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{If both @scheme[weight-on] and @scheme[weight-off] are set to @scheme['base],
|
||||
then the font weight is not changed.}
|
||||
@item{If @scheme[weight-on] is not @scheme['base], then the weight is set to
|
||||
|
@ -51,65 +51,65 @@ the base style has the weight @scheme[weight-on], then weight is changed to
|
|||
@item{If both @scheme[weight-on] and @scheme[weight-off] are set, but to
|
||||
different values, then the weight is changed to @scheme[weight-on]
|
||||
only when the base style has the weight @scheme[weight-off].}
|
||||
}
|
||||
]
|
||||
|
||||
Font styles, smoothing, underlining, and alignment work in an analogous manner.
|
||||
|
||||
The possible values for @scheme[alignment-on] and @scheme[alignment-off] are:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@indexed-scheme['base]}
|
||||
@item{@indexed-scheme['top]}
|
||||
@item{@indexed-scheme['center]}
|
||||
@item{@indexed-scheme['bottom]}
|
||||
}
|
||||
]
|
||||
|
||||
The possible values for @scheme[style-on] and @scheme[style-off] are:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@indexed-scheme['base]}
|
||||
@item{@indexed-scheme['normal]}
|
||||
@item{@indexed-scheme['italic]}
|
||||
@item{@indexed-scheme['slant]}
|
||||
}
|
||||
]
|
||||
|
||||
The possible values for @scheme[smoothing-on] and @scheme[smoothing-off] are:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@indexed-scheme['base]}
|
||||
@item{@indexed-scheme['default]}
|
||||
@item{@indexed-scheme['partly-smoothed]}
|
||||
@item{@indexed-scheme['smoothed]}
|
||||
@item{@indexed-scheme['unsmoothed]}
|
||||
}
|
||||
]
|
||||
|
||||
The possible values for @scheme[underlined-on] and @scheme[underlined-off] are:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme[#f] (acts like @scheme['base])}
|
||||
@item{@scheme[#t]}
|
||||
}
|
||||
]
|
||||
|
||||
The possible values for @scheme[size-in-pixels-on] and @scheme[size-in-pixels-off] are:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme[#f] (acts like @scheme['base])}
|
||||
@item{@scheme[#t]}
|
||||
}
|
||||
]
|
||||
|
||||
The possible values for @scheme[transparent-text-backing-on] and
|
||||
@scheme[transparent-text-backing-off] are:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme[#f] (acts like @scheme['base])}
|
||||
@item{@scheme[#t]}
|
||||
}
|
||||
]
|
||||
|
||||
The possible values for @scheme[weight-on] and @scheme[weight-off] are:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@indexed-scheme['base]}
|
||||
@item{@indexed-scheme['normal]}
|
||||
@item{@indexed-scheme['bold]}
|
||||
@item{@indexed-scheme['light]}
|
||||
}
|
||||
]
|
||||
|
||||
The family and face settings in a style delta are interdependent:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{When a delta's face is @scheme[#f] and its family is
|
||||
@scheme['base], then neither the face nor family are modified by
|
||||
|
@ -124,7 +124,7 @@ The family and face settings in a style delta are interdependent:
|
|||
@scheme[#f], so that the family setting prevails in choosing a
|
||||
font.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
@ -236,7 +236,7 @@ See also @method[style-delta% get-family].
|
|||
'swiss 'modern 'symbol 'system)]{
|
||||
|
||||
Returns the delta's font family. The possible values are
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@indexed-scheme['base] --- no change to family}
|
||||
@item{@indexed-scheme['default]}
|
||||
@item{@indexed-scheme['decorative]}
|
||||
|
@ -246,7 +246,7 @@ Returns the delta's font family. The possible values are
|
|||
@item{@indexed-scheme['modern] (fixed width)}
|
||||
@item{@indexed-scheme['symbol] (Greek letters)}
|
||||
@item{@indexed-scheme['system] (used to draw control labels)}
|
||||
}
|
||||
]
|
||||
|
||||
See also
|
||||
@method[style-delta% get-face].
|
||||
|
@ -401,7 +401,7 @@ Except for @scheme['change-nothing] and
|
|||
|
||||
The @scheme[change-command] argument specifies how the delta is changed;
|
||||
the possible values are:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme['change-nothing] --- reset all changes}
|
||||
@item{@scheme['change-normal] --- turn off all styles and resizings}
|
||||
@item{@scheme['change-toggle-underline] --- underline regions that are currently not underlined, and vice-versa}
|
||||
|
@ -430,7 +430,7 @@ the possible values are:
|
|||
@item{@scheme['change-smaller] --- make the text smaller (@scheme[param] is an additive amount)}
|
||||
@item{@scheme['change-underline] --- set the underline status to either underlined or plain}
|
||||
@item{@scheme['change-size-in-pixels] --- set the size interpretation to pixels or points}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ A @scheme[subarea<%>] is a containee @scheme[area<%>].
|
|||
|
||||
All @scheme[subarea<%>] classes accept the following named
|
||||
instantiation arguments:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@indexed-scheme[horiz-margin] --- default is @scheme[2] for
|
||||
@scheme[control<%>] classes and @scheme[group-box-panel%],
|
||||
|
@ -17,7 +17,7 @@ All @scheme[subarea<%>] classes accept the following named
|
|||
@scheme[control<%>] classes and @scheme[group-box-panel%],
|
||||
@scheme[0] for others; passed to
|
||||
@method[subarea<%> vert-margin]}
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -588,7 +588,7 @@ Returns the snip at a given @techlink{position}, or @scheme[#f] if an appropriat
|
|||
If the @techlink{position} @scheme[pos] is between
|
||||
two snips, @scheme[direction] specifies which snip to return; @scheme[direction]
|
||||
can be any of the following:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme['before-or-none] --- returns the snip before the
|
||||
@techlink{position}, or @scheme[#f] if @scheme[pos] is @scheme[0]}
|
||||
|
@ -602,7 +602,7 @@ can be any of the following:
|
|||
@item{@scheme['after-or-none] -- returns the snip after the
|
||||
@techlink{position}, or @scheme[#f] if @scheme[pos] is the last @techlink{position} or larger}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
@boxisfillnull[(scheme s-pos) @elem{the @techlink{position} where the returned snip starts}]
|
||||
|
||||
|
@ -679,13 +679,13 @@ The @scheme[reason] argument specifies more information about what the
|
|||
caret may be different from the wordbreaks used to break lines. The
|
||||
possible values of @scheme[reason] are:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme['caret] --- find a wordbreak suitable for moving the caret}
|
||||
@item{@scheme['line] --- find a wordbreak suitable for breaking lines}
|
||||
@item{@scheme['selection] --- find a wordbreak suitable for selecting the closest word}
|
||||
@item{@scheme['user1] --- for other (not built-in) uses}
|
||||
@item{@scheme['user2] --- for other (not built-in) uses}
|
||||
}
|
||||
]
|
||||
|
||||
The actual handling of @scheme[reason] is controlled by the current
|
||||
wordbreak procedure; see @method[text% set-wordbreak-func]for
|
||||
|
@ -1227,7 +1227,7 @@ If the line starts with invisible @techlink{item}s and @scheme[visible?] is not
|
|||
@|FCAMW|
|
||||
|
||||
To calculate lines, if the following are true:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{the editor is not displayed (see @secref["tb:miaoverview"]),}
|
||||
|
||||
|
@ -1235,7 +1235,7 @@ To calculate lines, if the following are true:
|
|||
|
||||
@item{the editor has never been viewed}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
then this method ignores the editor's maximum width and any automatic
|
||||
line breaks it might imply. If the first two of the above conditions
|
||||
|
@ -1256,14 +1256,14 @@ Moves the current selection.
|
|||
|
||||
The possible values for @scheme[code] are:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme['home] --- go to start of file}
|
||||
@item{@scheme['end] --- go to end of file}
|
||||
@item{@scheme['right] --- move right}
|
||||
@item{@scheme['left] --- move left}
|
||||
@item{@scheme['up] --- move up}
|
||||
@item{@scheme['down] --- move down}
|
||||
}
|
||||
]
|
||||
|
||||
If @scheme[extend?] is not @scheme[#f], the selection range is
|
||||
extended instead of moved. If anchoring is on (see @method[text%
|
||||
|
@ -1272,12 +1272,12 @@ If @scheme[extend?] is not @scheme[#f], the selection range is
|
|||
|
||||
The possible values for @scheme[kind] are:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme['simple] --- move one item or line}
|
||||
@item{@scheme['word] --- works with @scheme['right] or @scheme['left]}
|
||||
@item{@scheme['page] --- works with @scheme['up] or @scheme['down]}
|
||||
@item{@scheme['line] --- works with @scheme['right] or @scheme['left]; moves to the start or end of the line}
|
||||
}
|
||||
]
|
||||
|
||||
See also @method[text% set-position].
|
||||
|
||||
|
@ -1317,7 +1317,7 @@ Does nothing.
|
|||
|
||||
Handles the following:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{Delete and Backspace --- calls @method[text% delete].}
|
||||
|
||||
|
@ -1329,7 +1329,7 @@ Handles the following:
|
|||
@scheme[(integer->char 255)] --- inserts the character into the
|
||||
editor.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
Note that an editor's @scheme[editor-canvas%] normally handles mouse
|
||||
wheel events (see also @method[editor-canvas% on-char] ).
|
||||
|
@ -1346,7 +1346,7 @@ Tracks clicks on a clickback (see @method[text% set-clickback]) of
|
|||
dispatches to a caret-owning snip and detects a click on an
|
||||
event-handling snip before calling to this method.
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{Clicking on a clickback region starts clickback tracking. See
|
||||
@method[text% set-clickback] for more information. Moving over a
|
||||
|
@ -1358,7 +1358,7 @@ Tracks clicks on a clickback (see @method[text% set-clickback]) of
|
|||
@item{Dragging extends the selection, scrolling if possible when the
|
||||
selection is dragged outside the editor's visible region.}
|
||||
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
|
@ -1821,11 +1821,11 @@ Set the format of the file saved from this editor.
|
|||
|
||||
The legal formats are:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme['standard] --- a standard editor file}
|
||||
@item{@scheme['text] --- a text file}
|
||||
@item{@scheme['text-force-cr] --- a text file; when writing, change automatic newlines (from word-wrapping) into real carriage returns}
|
||||
}
|
||||
]
|
||||
|
||||
@MonitorMethod[@elem{The file format of an editor} @elem{the
|
||||
system in response to file loading and saving
|
||||
|
@ -1910,7 +1910,7 @@ See @|ateoldiscuss| for a discussion of @scheme[at-eol?]. If
|
|||
|
||||
The @scheme[seltype] argument is only used when the X Window System
|
||||
selection mechanism is enabled. The possible values are:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme['default] --- if this window has the keyboard focus
|
||||
and given selection is non-empty, make it the current X selection}
|
||||
|
@ -1921,7 +1921,7 @@ The @scheme[seltype] argument is only used when the X Window System
|
|||
@item{@scheme['local] --- do not change the
|
||||
current X selection}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
Setting the @techlink{position} is disallowed when the editor is internally
|
||||
locked for reflowing (see also @|lockdiscuss|).
|
||||
|
@ -1945,13 +1945,13 @@ See also @scheme[editor-set-x-selection-mode].
|
|||
Like @method[text% set-position], but a scrolling bias can be specified.
|
||||
|
||||
The possible values for @scheme[bias] are:
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{@scheme['start-only] --- only insure that the starting @techlink{position} is visible}
|
||||
@item{@scheme['start] --- if the range doesn't fit in the visible area, show the starting @techlink{position}}
|
||||
@item{@scheme['none] --- no special scrolling instructions}
|
||||
@item{@scheme['end] --- if the range doesn't fit in the visible area, show the ending @techlink{position}}
|
||||
@item{@scheme['end-only] --- only insure that the ending @techlink{position} is visible}
|
||||
}
|
||||
]
|
||||
|
||||
See also @method[text% scroll-to-position].
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ A @scheme[text-field%] object is an editable text field with an
|
|||
optional label displayed in front of it. There are two text field
|
||||
styles:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{A single line of text is visible, and a special control event
|
||||
is generated when the user presses Enter (when the text field has the
|
||||
|
@ -17,7 +17,7 @@ A @scheme[text-field%] object is an editable text field with an
|
|||
@item{Multiple lines of text are visible, and Enter is not handled
|
||||
specially.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
Whenever the user changes the content of a text field, its callback
|
||||
procedure is invoked. A callback procedure is provided as an
|
||||
|
@ -101,7 +101,7 @@ Returns the editor used to implement the text field.
|
|||
|
||||
For a text field, the most useful methods of a @scheme[text%] object
|
||||
are the following:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme[(send a-text #, @method[text% get-text])] returns
|
||||
the current text of the editor.}
|
||||
|
@ -112,7 +112,7 @@ For a text field, the most useful methods of a @scheme[text%] object
|
|||
@item{@scheme[(send a-text #, @method[text% insert] _str)] inserts
|
||||
@scheme[_str] into the editor at the current caret position.}
|
||||
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -208,13 +208,13 @@ Returns @|void-const|.
|
|||
The following rules determine, in order, whether and how @scheme[event]
|
||||
is handled:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{
|
||||
If the window that currently owns the focus specifically handles the
|
||||
event, then @scheme[#f] is returned. The following describes window
|
||||
types and the keyboard events they specifically handle:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme[editor-canvas%] --- tab-exit is disabled (see
|
||||
@method[editor-canvas% allow-tab-exit]): all keyboard events, except alphanumeric key events when the Meta
|
||||
|
@ -242,7 +242,7 @@ If the window that currently owns the focus specifically handles the
|
|||
@item{@scheme[list-box%] --- arrow key events and alphanumeric key
|
||||
events when the Meta (X) or Alt (Windows) key is not pressed}
|
||||
|
||||
}}
|
||||
]}
|
||||
|
||||
@item{
|
||||
If @scheme[event] is a Tab or arrow key event, the keyboard focus is
|
||||
|
@ -288,7 +288,7 @@ If @scheme[event] is an alphanumeric key event and the current top-level
|
|||
@item{
|
||||
Otherwise, @scheme[#f] is returned.}
|
||||
|
||||
}
|
||||
]
|
||||
}}
|
||||
|
||||
@defmethod[(on-system-menu-char [event (is-a?/c key-event%)])
|
||||
|
|
|
@ -134,12 +134,12 @@ The fundamental graphical element in the windowing toolbox is an
|
|||
@deftech{area}. The following classes implement the different types
|
||||
of areas in the windowing toolbox:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@deftech{Containers} --- areas that can
|
||||
contain other areas:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme[frame%] --- a @deftech{frame} is a top-level window
|
||||
that the user can move and resize.}
|
||||
|
@ -159,12 +159,12 @@ The fundamental graphical element in the windowing toolbox is an
|
|||
@scheme[vertical-pane%], @scheme[horizontal-pane%], and
|
||||
@scheme[grow-box-spacer-pane%].}
|
||||
|
||||
}}
|
||||
]}
|
||||
|
||||
@item{@deftech{Containees} --- areas that must be
|
||||
contained within other areas:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme[panel%] --- a panel is a containee as well as
|
||||
a container.}
|
||||
|
@ -182,7 +182,7 @@ The fundamental graphical element in the windowing toolbox is an
|
|||
|
||||
@item{@deftech{Controls} --- containees that the user can manipulate:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme[message%] --- a @deftech{message} is a static
|
||||
text field or bitmap with no user interaction.}
|
||||
|
@ -219,11 +219,11 @@ The fundamental graphical element in the windowing toolbox is an
|
|||
control (the user cannot change the value) for reporting an integer
|
||||
value within a fixed range.}
|
||||
|
||||
}}
|
||||
]}
|
||||
|
||||
}}
|
||||
]}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
As suggested by the above listing, certain @tech{areas}, called
|
||||
@tech{containers}, manage certain other areas, called
|
||||
|
@ -268,11 +268,11 @@ Menu bars, menus, and menu items are graphical elements, but not areas
|
|||
areas, such as an adjustable graphical size). Instead, the menu
|
||||
classes form a separate container--containee hierarchy:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@deftech{Menu Item Containers}
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme[menu-bar%] --- a @deftech{menu bar} is a top-level
|
||||
collection of menus that are associated with a frame.}
|
||||
|
@ -285,11 +285,11 @@ Menu bars, menus, and menu items are graphical elements, but not areas
|
|||
top-level menu that is dynamically displayed in a canvas or
|
||||
editor canvas.}
|
||||
|
||||
}}
|
||||
]}
|
||||
|
||||
@item{@deftech{Menu Items}
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@scheme[separator-menu-item%] --- a @deftech{separator} is
|
||||
an unselectable line in a menu or popup menu.}
|
||||
|
@ -305,9 +305,9 @@ Menu bars, menus, and menu items are graphical elements, but not areas
|
|||
@item{@scheme[menu%] --- a menu is a menu item as well as a menu
|
||||
item container.}
|
||||
|
||||
}}
|
||||
]}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
The following diagram shows the complete type hierarchy for the menu
|
||||
system:
|
||||
|
@ -395,7 +395,7 @@ The following subsections describe the container system in detail,
|
|||
|
||||
Each @tech{containee}, or child, has the following properties:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{a @deftech{graphical minimum width} and a @deftech{graphical minimum height};}
|
||||
|
||||
|
@ -405,7 +405,7 @@ Each @tech{containee}, or child, has the following properties:
|
|||
|
||||
@item{horizontal and vertical @tech{margins}.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
A @tech{container} arranges its children based on these four
|
||||
properties of each @tech{containee}. A @tech{containee}'s parent
|
||||
|
@ -464,7 +464,7 @@ In practice, the @tech{requested minimum size} and @tech{margin} of a
|
|||
|
||||
A container has the following properties:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{a list of (non-deleted) children containees;}
|
||||
|
||||
|
@ -478,7 +478,7 @@ A container has the following properties:
|
|||
|
||||
@item{an alignment setting for positioning leftover space.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
These properties are factored into the container's calculation of its
|
||||
own size and the arrangement of its children. For a container that is
|
||||
|
@ -491,7 +491,7 @@ A containee's parent container is specified when the containee is
|
|||
container (but a non-window containee cannot be @tech{hidden} or
|
||||
@tech{deleted}):
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{A @deftech{hidden} child is invisible to the user, but space is
|
||||
still allocated for each hidden child within a container. To hide or
|
||||
|
@ -504,7 +504,7 @@ A containee's parent container is specified when the containee is
|
|||
delete-child] or @method[area-container<%> add-child] method (which
|
||||
calls the child's @method[window<%> show] method).}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
When a child is created, it is initially shown and non-deleted. A
|
||||
deleted child is subject to garbage collection when no external
|
||||
|
@ -588,22 +588,22 @@ Although nested horizontal and vertical containers can express most
|
|||
|
||||
An input size specification is a list of four values:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{the child's minimum width;}
|
||||
@item{the child's minimum height;}
|
||||
@item{the child's horizontal stretchability (@scheme[#t] means stretchable, @scheme[#f] means not stretchable); and}
|
||||
@item{the child's vertical stretchability.}
|
||||
}
|
||||
]
|
||||
|
||||
For @method[area-container<%> place-children], an output
|
||||
position and size specification is a list of four values:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
@item{the child's new horizontal position (relative to the parent);}
|
||||
@item{the child's new vertical position;}
|
||||
@item{the child's new actual width;}
|
||||
@item{the child's new actual height.}
|
||||
}
|
||||
]
|
||||
|
||||
The widths and heights for both the input and output include the
|
||||
children's margins. The returned position for each child is
|
||||
|
@ -618,7 +618,7 @@ Whenever the user moves the mouse, clicks or releases a mouse button,
|
|||
window. The window that receives the event depends on the current
|
||||
state of the graphic display:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@index['("mouse events" "overview")]{The} receiving window of a
|
||||
mouse event is usually the window under the cursor when the mouse is
|
||||
|
@ -665,7 +665,7 @@ Whenever the user moves the mouse, clicks or releases a mouse button,
|
|||
event, however, key-release events sometimes get dropped (e.g., due
|
||||
to the appearance of a modal dialog).}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
Controls, such as buttons and list boxes, handle keyboard and mouse
|
||||
events automatically, eventually invoking the callback procedure that
|
||||
|
@ -715,7 +715,7 @@ Despite the programming convenience provided by a purely sequential
|
|||
event queue, certain situations require a less rigid dialog with
|
||||
the user:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@italic{Nested event handling:} In the process of handling an
|
||||
event, it may be necessary to obtain further information from the
|
||||
|
@ -738,7 +738,7 @@ Despite the programming convenience provided by a purely sequential
|
|||
the application needs a separate event queue for each window, and a
|
||||
separate event-handling thread for each event queue.}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
An @deftech{eventspace} is a context for processing GUI
|
||||
events. Each eventspace maintains its own queue of events, and events
|
||||
|
@ -795,7 +795,7 @@ An eventspace's event queue is actually a priority queue with events
|
|||
sorted according to their kind, from highest-priority (dispatched
|
||||
first) to lowest-priority (dispatched last):
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{The highest-priority events are high-priority events installed
|
||||
with @scheme[queue-callback].}
|
||||
|
@ -808,7 +808,7 @@ An eventspace's event queue is actually a priority queue with events
|
|||
@item{The lowest-priority events are low-priority events installed
|
||||
with @scheme[queue-callback].}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
Although a programmer has no direct control over the order in which
|
||||
events are dispatched, a programmer can control the timing of
|
||||
|
|
|
@ -8,12 +8,12 @@ A @scheme[window<%>] object is an @scheme[area<%>] with a graphical
|
|||
|
||||
All @scheme[window<%>] classes accept the following named instantiation
|
||||
arguments:
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{@indexed-scheme[enabled] --- default is @scheme[#t]; passed to
|
||||
@method[window<%> enable] if @scheme[#f]}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
@ -113,7 +113,7 @@ Returns an exact integer representing a handle to the window in the
|
|||
current platform's GUI toolbox. Cast this number from a C @tt{long}
|
||||
to a platform-specific C type:
|
||||
|
||||
@itemize{
|
||||
@itemize[
|
||||
|
||||
@item{Windows: @tt{HWND}}
|
||||
|
||||
|
@ -122,7 +122,7 @@ to a platform-specific C type:
|
|||
|
||||
@item{X: @tt{Widget*}}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
Some windows may not have a representation in the platform's GUI level,
|
||||
in which case the result of this method is @scheme[0].
|
||||
|
|
Loading…
Reference in New Issue
Block a user