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
This commit is contained in:
Eli Barzilay 2009-04-05 17:46:20 +00:00
parent ceee79e07f
commit c0a8a01222
212 changed files with 1074 additions and 1076 deletions

View File

@ -188,7 +188,7 @@ error reporting (e.g., with @cpp{scheme_wrong_type}).
Each @scheme[argument-type] must be one of the following, which are Each @scheme[argument-type] must be one of the following, which are
recognized symbolically: recognized symbolically:
@itemize{ @itemize[
@argtype[@scheme[bool] "any value" @cpp{int} @argtype[@scheme[bool] "any value" @cpp{int}
@toC{@scheme[#f] @|goesto| 0, anything else @|goesto| 1} @toC{@scheme[#f] @|goesto| 0, anything else @|goesto| 1}
@ -249,7 +249,7 @@ recognized symbolically:
@toScheme{@cpp{NULL} @|goesto| @scheme[#f], anything else @|goesto| new c-pointer containing the pointer @toScheme{@cpp{NULL} @|goesto| @scheme[#f], anything else @|goesto| new c-pointer containing the pointer
and identified as type @scheme[_bstr]}] and identified as type @scheme[_bstr]}]
} ]
The @scheme[return-type] must be @schemeidfont{void} or one of the The @scheme[return-type] must be @schemeidfont{void} or one of the
@scheme[arg-type] keywords.} @scheme[arg-type] keywords.}

View File

@ -21,11 +21,11 @@ Zeichnen wird dabei durch das Bewegen einer virtuellen Schildkröte
über den Zeichenbereich modelliert. Eine Schildkröte kann durch drei über den Zeichenbereich modelliert. Eine Schildkröte kann durch drei
Befehle bewegt werden: Befehle bewegt werden:
@itemize{ @itemize[
@item{@scheme[(move n)] Bewegt die Schildkröte um @scheme[n] Pixel ohne zu zeichnen.} @item{@scheme[(move n)] Bewegt die Schildkröte um @scheme[n] Pixel ohne zu zeichnen.}
@item{@scheme[(draw n)] Bewegt die Schildkröte um @scheme[n] Pixel und zeichnet dabei.} @item{@scheme[(draw n)] Bewegt die Schildkröte um @scheme[n] Pixel und zeichnet dabei.}
@item{@scheme[(turn n)] Dreht die Schildkröte um n Grad im Uhrzeigersinn.} @item{@scheme[(turn n)] Dreht die Schildkröte um n Grad im Uhrzeigersinn.}
} ]
Wir stellen jetzt ein Teachpack für DrScheme vor, mit dessen Hilfe Wir stellen jetzt ein Teachpack für DrScheme vor, mit dessen Hilfe
solche Turtle-Grafiken erstellt werden können. solche Turtle-Grafiken erstellt werden können.

View File

@ -69,12 +69,12 @@ all of the names in the tools library, for use defining keybindings
initialization and @scheme[drscheme:eval:build-user-eventspace/custodian] initialization and @scheme[drscheme:eval:build-user-eventspace/custodian]
Specifically, it sets these parameters: Specifically, it sets these parameters:
@itemize{ @itemize[
@item{ @scheme[current-namespace] has been set to a newly @item{ @scheme[current-namespace] has been set to a newly
created empty namespace. This namespace has the following modules created empty namespace. This namespace has the following modules
copied (with @scheme[namespace-attach-module]) copied (with @scheme[namespace-attach-module])
from DrScheme's original namespace: from DrScheme's original namespace:
@itemize{@item{@scheme['mzscheme]}@item{@scheme['mred]}} @itemize[@item{@scheme['mzscheme]}@item{@scheme['mred]}]
}@item{ }@item{
@scheme[read-curly-brace-as-paren] @scheme[read-curly-brace-as-paren]
is @scheme[#t], is @scheme[#t],
@ -94,7 +94,7 @@ all of the names in the tools library, for use defining keybindings
@scheme[get-the-snip-class-list] @scheme[get-the-snip-class-list]
is initialized with all of the snipclasses in DrScheme's eventspace's snip-class-list. is initialized with all of the snipclasses in DrScheme's eventspace's snip-class-list.
}}}) }]})
(proc-doc/names (proc-doc/names
drscheme:eval:get-snip-classes drscheme:eval:get-snip-classes
@ -235,12 +235,12 @@ all of the names in the tools library, for use defining keybindings
It initializes the It initializes the
user's eventspace's main thread with several parameters: user's eventspace's main thread with several parameters:
@itemize{ @itemize[
@item{ @scheme[current-custodian] is set to a new custodian. @item{ @scheme[current-custodian] is set to a new custodian.
}@item{ }@item{
In addition, it calls In addition, it calls
@scheme[drscheme:eval:set-basic-parameters]. @scheme[drscheme:eval:set-basic-parameters].
}} }]
The @scheme[language-settings] argument is the current The @scheme[language-settings] argument is the current
language and its settings. See language and its settings. See

View File

@ -145,11 +145,11 @@ Sets the parameters described in @secref["compile-params"] for a
particular known compiler. The acceptable names are particular known compiler. The acceptable names are
platforms-specific: platforms-specific:
@itemize{ @itemize[
@item{Unix: @scheme['cc] or @scheme['gcc]} @item{Unix: @scheme['cc] or @scheme['gcc]}
@item{Windows: @scheme['gcc], @scheme['msvc], or @scheme['borland]} @item{Windows: @scheme['gcc], @scheme['msvc], or @scheme['borland]}
@item{MacOS: @scheme['cw]} @item{MacOS: @scheme['cw]}
}} ]}
@defproc[(get-standard-compilers) (listof symbol?)]{ @defproc[(get-standard-compilers) (listof symbol?)]{

View File

@ -19,7 +19,7 @@ MzScheme's limited stack-trace reporting.
@section[#:tag "quick-instructions"]{Quick Instructions} @section[#:tag "quick-instructions"]{Quick Instructions}
@itemize{@item{Throw away @filepath{.zo} versions of your source.} @itemize[@item{Throw away @filepath{.zo} versions of your source.}
@item{Prefix your program with @item{Prefix your program with
@schemeblock[(require errortrace)] @schemeblock[(require errortrace)]
@ -33,7 +33,7 @@ MzScheme's limited stack-trace reporting.
@item{When an exception occurs, the exception handler prints @item{When an exception occurs, the exception handler prints
something like a stack trace, most recent contexts first.} something like a stack trace, most recent contexts first.}
} ]
The @schememodname[errortrace] module is strange; don't import it The @schememodname[errortrace] module is strange; don't import it
into another module. Instead, the @schememodname[errortrace] into another module. Instead, the @schememodname[errortrace]
@ -117,7 +117,7 @@ and sorts by either time or call counts.}
Returns a list of lists that contain all profiling information accumulated Returns a list of lists that contain all profiling information accumulated
so far: so far:
@itemize{ @itemize[
@item{the number of times a procedure was called.} @item{the number of times a procedure was called.}
@item{the number of milliseconds consumed by the procedure's body across @item{the number of milliseconds consumed by the procedure's body across
@ -133,19 +133,19 @@ so far:
@item{optionally, a list of unique call paths (i.e. stack traces) @item{optionally, a list of unique call paths (i.e. stack traces)
recorded if @scheme[profile-paths-enabled] is set to @scheme[#t]. recorded if @scheme[profile-paths-enabled] is set to @scheme[#t].
Each call path is a pair of Each call path is a pair of
@itemize{ @itemize[
@item{a count (the number of times the path occurred), and} @item{a count (the number of times the path occurred), and}
@item{a list containing two-element lists. Each two-element list @item{a list containing two-element lists. Each two-element list
contains contains
@itemize{ @itemize[
@item{the calling procedure's name or source expression, @item{the calling procedure's name or source expression,
and} and}
@item{the calling procedure's source file or @scheme[#f].}} @item{the calling procedure's source file or @scheme[#f].}]
} }
} ]
Collecting this information is relatively expensive.} Collecting this information is relatively expensive.}
}} ]}
@defboolparam[profile-paths-enabled on?]{ @defboolparam[profile-paths-enabled on?]{

View File

@ -18,7 +18,7 @@ images. The @scheme[gif-end] function ends the GIF stream.
A GIF stream can be in any one of the following states: A GIF stream can be in any one of the following states:
@itemize{ @itemize[
@item{@scheme['init] : no images or controls have been added to the @item{@scheme['init] : no images or controls have been added to the
stream} stream}
@ -31,6 +31,6 @@ A GIF stream can be in any one of the following states:
@item{@scheme['done] : nothing more can be added} @item{@scheme['done] : nothing more can be added}
} ]
@(include-extracted "../gif.ss") @(include-extracted "../gif.ss")

View File

@ -151,14 +151,14 @@
(name-list val-list) (name-list val-list)
@{Like @scheme[put-preferences], but has more sophisticated error @{Like @scheme[put-preferences], but has more sophisticated error
handling. In particular, it handling. In particular, it
@itemize{ @itemize[
@item{waits for three consecutive failures before informing the @item{waits for three consecutive failures before informing the
user} user}
@item{gives the user the opportunity to ``steal'' the lockfile @item{gives the user the opportunity to ``steal'' the lockfile
after the third failure, and} after the third failure, and}
@item{when failures occur, it remembers what its arguments were @item{when failures occur, it remembers what its arguments were
and if any preference save eventually succeeds, all of the 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 (proc-doc/names
preferences:add-panel preferences:add-panel
@ -351,7 +351,7 @@
(-> any) (-> any)
() ()
@{@scheme[exit:exit] performs four actions: @{@scheme[exit:exit] performs four actions:
@itemize{ @itemize[
@item{sets the result of the @scheme[exit:exiting?] function to @item{sets the result of the @scheme[exit:exiting?] function to
@scheme[#t].} @scheme[#t].}
@item{invokes the exit-callbacks, with @scheme[exit:can-exit?] if @item{invokes the exit-callbacks, with @scheme[exit:can-exit?] if
@ -359,7 +359,7 @@
@item{invokes @scheme[exit:on-exit] and then} @item{invokes @scheme[exit:on-exit] and then}
@item{queues a callback that calls @scheme[exit] @item{queues a callback that calls @scheme[exit]
(a mzscheme procedure) and (if @scheme[exit] returns) sets the result of (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 (proc-doc/names
exit:user-oks-exit exit:user-oks-exit
@ -719,22 +719,22 @@
Otherwise, it invokes the appropriate format handler to open the Otherwise, it invokes the appropriate format handler to open the
file (see @scheme[handler:insert-format-handler]). file (see @scheme[handler:insert-format-handler]).
@itemize{ @itemize[
@item{If @scheme[filename] is a string, this function checks the @item{If @scheme[filename] is a string, this function checks the
result of @scheme[group:get-the-frame-group] to see if the result of @scheme[group:get-the-frame-group] to see if the
@scheme[filename] is already open by a frame in the group. @scheme[filename] is already open by a frame in the group.
@itemize{ @itemize[
@item{If so, it returns the frame.} @item{If so, it returns the frame.}
@item{If not, this function calls @item{If not, this function calls
@scheme[handler:find-format-handler] with @scheme[handler:find-format-handler] with
@scheme[filename]. @scheme[filename].
@itemize{ @itemize[
@item{If a handler is found, it is applied to @item{If a handler is found, it is applied to
@scheme[filename] and it's result is the @scheme[filename] and it's result is the
final result.} 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] @item{If @scheme[filename] is @scheme[#f], @scheme[make-default]
is used.}}}) is used.}]})
(parameter-doc (parameter-doc
handler:current-create-new-window handler:current-create-new-window
@ -966,13 +966,13 @@
@{This returns a keymap for handling standard editing operations. It @{This returns a keymap for handling standard editing operations. It
binds these keys: binds these keys:
@itemize{ @itemize[
@item{@scheme["z"]: undo} @item{@scheme["z"]: undo}
@item{@scheme["y"]: redo} @item{@scheme["y"]: redo}
@item{@scheme["x"]: cut} @item{@scheme["x"]: cut}
@item{@scheme["c"]: copy} @item{@scheme["c"]: copy}
@item{@scheme["v"]: paste} @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 where each key is prefixed with the menu-shortcut key, based on the
platform. Under unix, the shortcut is @scheme["a:"]; under windows platform. Under unix, the shortcut is @scheme["a:"]; under windows
the shortcut key is @scheme["c:"] and under MacOS, the shortcut key 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 This function extends a @scheme[keymap%] with the following
functions: functions:
@itemize{ @itemize[
@item{@mapdesc[ring-bell any] --- Rings the bell @item{@mapdesc[ring-bell any] --- Rings the bell
(using @scheme[bell]) and removes the search panel from the frame, (using @scheme[bell]) and removes the search panel from the frame,
if there.} if there.}
@ -1128,12 +1128,12 @@
@item{@mapdesc[end-macro key] --- Stops building a keyboard macro} @item{@mapdesc[end-macro key] --- Stops building a keyboard macro}
@item{@mapdesc[do-macro key] --- Executes the last keyboard macro} @item{@mapdesc[do-macro key] --- Executes the last keyboard macro}
@item{@mapdesc[toggle-overwrite key] --- Toggles overwriting @item{@mapdesc[toggle-overwrite key] --- Toggles overwriting
mode}} mode}]
These functions are bound to the following keys These functions are bound to the following keys
(C = control, S = shift, A = alt, M = ``meta'', D = command): (C = control, S = shift, A = alt, M = ``meta'', D = command):
@itemize{ @itemize[
@item{C-g : ``ring-bell''} @item{C-g : ``ring-bell''}
@item{M-C-g : ``ring-bell''} @item{M-C-g : ``ring-bell''}
@item{C-c C-g : ``ring-bell''} @item{C-c C-g : ``ring-bell''}
@ -1213,7 +1213,7 @@
@item{MIDDLEBUTTON : ``paste-click-region''} @item{MIDDLEBUTTON : ``paste-click-region''}
@item{C-RIGHTBUTTON : ``copy-clipboard''} @item{C-RIGHTBUTTON : ``copy-clipboard''}
@item{INSERT : ``toggle-overwrite''} @item{INSERT : ``toggle-overwrite''}
@item{M-o : ``toggle-overwrite''}}}) @item{M-o : ``toggle-overwrite''}]})
(proc-doc/names (proc-doc/names
keymap:setup-search keymap:setup-search

View File

@ -302,29 +302,29 @@ Removes @scheme[card] from the table.}
indicated by @scheme[which]. The @scheme[action] argument must be one indicated by @scheme[which]. The @scheme[action] argument must be one
of the following: of the following:
@itemize{ @itemize[
@item[@scheme['drag/one]]{ --- drag only the clicked-on card.} @item{@scheme['drag/one] --- drag only the clicked-on card.}
@item[@scheme['drag-raise/one]]{ --- like drag/one, but raise the @item{@scheme['drag-raise/one] --- like drag/one, but raise the
card to the top on a click.} card to the top on a click.}
@item[@scheme['drag/above]]{ --- drag the card along with any card @item{@scheme['drag/above] --- drag the card along with any card
on top of the card (i.e., more towards the front and on top of the card (i.e., more towards the front and
overlapping with the card). The on-top-of relation overlapping with the card). The on-top-of relation
is closed transitively.} is closed transitively.}
@item[@scheme['drag-raise/above]]{ --- like @scheme['drag/above], @item{@scheme['drag-raise/above] --- like @scheme['drag/above],
but raises.} but raises.}
@item[@scheme['drag-below]]{ --- drag the card along with any card @item{@scheme['drag-below] --- drag the card along with any card
underneath the card (i.e., more towards the back and underneath the card (i.e., more towards the back and
overlapping with the card). The underneath relation overlapping with the card). The underneath relation
is closed transitively.} is closed transitively.}
@item[@scheme['drag-raise/below]]{ --- like @scheme['drag/below], @item{@scheme['drag-raise/below] --- like @scheme['drag/below],
but raises.} but raises.}
} ]
The initial settings are: @scheme['drag-raise/above] for The initial settings are: @scheme['drag-raise/above] for
@scheme['left], @scheme['drag/one] for @scheme['middle], and @scheme['left], @scheme['drag/one] for @scheme['middle], and

View File

@ -1133,10 +1133,10 @@ based on the state of the key event.
The @scheme[clack] function handles mouse input. It has three tasks and each corresponds The @scheme[clack] function handles mouse input. It has three tasks and each corresponds
to a helper function: to a helper function:
@itemize{ @itemize[
@item{block the clicked cell (@scheme[block-cell/world]),} @item{block the clicked cell (@scheme[block-cell/world]),}
@item{move the cat (@scheme[move-cat]), and} @item{move the cat (@scheme[move-cat]), and}
@item{update the black dot as the mouse moves around (@scheme[update-world-posn]).}} @item{update the black dot as the mouse moves around (@scheme[update-world-posn]).}]
The helper functions are combined in the body of @scheme[clack], The helper functions are combined in the body of @scheme[clack],
first checking to see if the mouse event corresponds to a first checking to see if the mouse event corresponds to a
player's move (via the @scheme[player-moved?] function. player's move (via the @scheme[player-moved?] function.

View File

@ -117,10 +117,10 @@ A @scheme[html-content] is either
} }
A @scheme[Contents-of-html] is either A @scheme[Contents-of-html] is either
@itemize{ @itemize[
@item{@scheme[body]} @item{@scheme[body]}
@item{@scheme[head]} @item{@scheme[head]}
} ]
@defstruct[(div html-full)()]{ @defstruct[(div html-full)()]{

View File

@ -243,7 +243,7 @@ selects an identifier, all terms in the same equivalence class as the
selected term are highlighted in yellow. selected term are highlighted in yellow.
The available secondary partitionings are: The available secondary partitionings are:
@itemize{ @itemize[
@item{@scheme[bound-identifier=?]} @item{@scheme[bound-identifier=?]}
@item{@scheme[module-identifier=?]} @item{@scheme[module-identifier=?]}
@item{@scheme[module-or-top-identifier=?]} @item{@scheme[module-or-top-identifier=?]}
@ -263,14 +263,14 @@ The available secondary partitionings are:
The bindings of the two identifiers were imported into the current The bindings of the two identifiers were imported into the current
context by requiring the same module. context by requiring the same module.
} }
} ]
@subsection{Properties} @subsection{Properties}
When the properties pane is shown, it displays properties of the When the properties pane is shown, it displays properties of the
selected syntax object. The properties pane has two tabbed pages: selected syntax object. The properties pane has two tabbed pages:
@itemize{ @itemize[
@item{@bold{Term}: @item{@bold{Term}:
If the selection is an identifier, shows the binding information If the selection is an identifier, shows the binding information
@ -282,7 +282,7 @@ selected syntax object. The properties pane has two tabbed pages:
Displays source location information and other properties (see Displays source location information and other properties (see
@scheme[syntax-property]) carried by the syntax object. @scheme[syntax-property]) carried by the syntax object.
} }
} ]
@subsection{Interpreting syntax} @subsection{Interpreting syntax}

View File

@ -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: The list control supports the following default keystrokes:
@itemize{ @itemize[
@item{Down: move to the next entry at the current level (skipping lower levels).} @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).} @item{Return: open/close the current selected level (only valid for lists).}
} ]
@local-table-of-contents[] @local-table-of-contents[]

View File

@ -14,13 +14,13 @@ Sets @scheme[port]'s display handler (via
@scheme[port-display-handler]) so that when it encounters these @scheme[port-display-handler]) so that when it encounters these
values: values:
@itemize{ @itemize[
@item{exact, real, non-integral numbers} @item{exact, real, non-integral numbers}
@item{syntax objects} @item{syntax objects}
} ]
it uses @scheme[write-special] to send snips to the port, it uses @scheme[write-special] to send snips to the port,
instead of those values. Otherwise, it behaves like the instead of those values. Otherwise, it behaves like the

View File

@ -72,7 +72,7 @@ user to create a new directory.
The @scheme[filters] argument is one of: The @scheme[filters] argument is one of:
@itemize{ @itemize[
@item{@scheme[(list (list _filter-name _filter-glob) ...)] --- a @item{@scheme[(list (list _filter-name _filter-glob) ...)] --- a
list of pattern names (e.g., @scheme["Scheme Files"]) and glob 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 @scheme["*.*"] under Windows and @scheme["*"] on other
platforms.} platforms.}
} ]
The @scheme[show-file?] predicate is used to filter file paths that 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 are shown in the dialog. The predicate is applied to the file name as

View File

@ -138,7 +138,7 @@ an additional keyword tag before the binding variables.
Each @scheme[clause] has one of the following forms: Each @scheme[clause] has one of the following forms:
@itemize{ @itemize[
@item{@scheme[(val target expr)] : Binds @scheme[target] @item{@scheme[(val target expr)] : Binds @scheme[target]
non-recursively to @scheme[expr].} non-recursively to @scheme[expr].}
@ -157,7 +157,7 @@ Each @scheme[clause] has one of the following forms:
@item{@scheme[(_ expr ...)] : Evaluates the @scheme[expr]s without @item{@scheme[(_ expr ...)] : Evaluates the @scheme[expr]s without
binding any variables.} binding any variables.}
} ]
The clauses bind left-to-right. When a @scheme[target] is The clauses bind left-to-right. When a @scheme[target] is
@scheme[(values id ...)], multiple values returned by the @scheme[(values id ...)], multiple values returned by the

View File

@ -20,7 +20,7 @@ Inlines the syntax in the designated file in place of the
@scheme[include] expression. The @scheme[path-spec] can be any of the @scheme[include] expression. The @scheme[path-spec] can be any of the
following: following:
@itemize{ @itemize[
@item{A literal string that specifies a path to include, parsed @item{A literal string that specifies a path to include, parsed
according to the platform's conventions (which means that it is according to the platform's conventions (which means that it is
@ -45,7 +45,7 @@ following:
directory using @scheme[build-path] to obtain the path to directory using @scheme[build-path] to obtain the path to
include.} include.}
} ]
If @scheme[path-spec] specifies a relative path to include, the path If @scheme[path-spec] specifies a relative path to include, the path
is resolved relative to the source for the @scheme[include] is resolved relative to the source for the @scheme[include]

View File

@ -191,7 +191,7 @@ and keyword arguments---may contain specifications for rest-like
arguments and/or mode keywords. Up to five rest-like arguments can be arguments and/or mode keywords. Up to five rest-like arguments can be
declared, each with an @scheme[_id] to bind: declared, each with an @scheme[_id] to bind:
@itemize{ @itemize[
@item{@as-index{@scheme[#:rest]} --- The variable is bound to the @item{@as-index{@scheme[#:rest]} --- The variable is bound to the
list of ``rest'' arguments, which is the list of all values after list of ``rest'' arguments, which is the list of all values after
@ -233,7 +233,7 @@ declared, each with an @scheme[_id] to bind:
binding. (When no @scheme[#:body] variables are specified, then binding. (When no @scheme[#:body] variables are specified, then
@scheme[#:other-keys+body] is the same as @scheme[#:other-keys].)} @scheme[#:other-keys+body] is the same as @scheme[#:other-keys].)}
} ]
In the following example, all rest-like arguments are used and have different In the following example, all rest-like arguments are used and have different
bindings: bindings:
@ -252,10 +252,10 @@ bindings:
Note that the following invariants always hold: Note that the following invariants always hold:
@itemize{ @itemize[
@item{@scheme[_rest] = @scheme[(append _all-keys _body)]} @item{@scheme[_rest] = @scheme[(append _all-keys _body)]}
@item{@scheme[_other-keys+body] = @scheme[(append _other-keys _body)]} @item{@scheme[_other-keys+body] = @scheme[(append _other-keys _body)]}
} ]
To write a procedure that uses a few keyword argument values, and that To write a procedure that uses a few keyword argument values, and that
also calls another procedure with the same list of arguments also calls another procedure with the same list of arguments
@ -333,7 +333,7 @@ suffix:
Finally, the argument list of a @scheme[lambda/kw] can contain Finally, the argument list of a @scheme[lambda/kw] can contain
keywords that serve as mode flags to control error reporting. keywords that serve as mode flags to control error reporting.
@itemize{ @itemize[
@item{@as-index{@scheme[#:allow-other-keys]} --- The keyword-value @item{@as-index{@scheme[#:allow-other-keys]} --- The keyword-value
sequence at the call site @italic{can} include keywords that are not sequence at the call site @italic{can} include keywords that are not
@ -374,12 +374,12 @@ keywords that serve as mode flags to control error reporting.
@item{@as-index{@scheme[#:forbid-anything]} --- Forbids all of the @item{@as-index{@scheme[#:forbid-anything]} --- Forbids all of the
above, ensuring that calls are as restricted as possible.} above, ensuring that calls are as restricted as possible.}
} ]
These above mode markers are rarely needed, because the default modes These above mode markers are rarely needed, because the default modes
are determined by the declared rest-like arguments: are determined by the declared rest-like arguments:
@itemize{ @itemize[
@item{The default is to allow other keys if a @scheme[#:rest], @item{The default is to allow other keys if a @scheme[#:rest],
@scheme[#:other-keys+body], @scheme[#:all-keys], or @scheme[#:other-keys+body], @scheme[#:all-keys], or
@ -393,12 +393,12 @@ are determined by the declared rest-like arguments:
@scheme[#:body], or @scheme[#:other-keys+body] variable is declared @scheme[#:body], or @scheme[#:other-keys+body] variable is declared
(and a @scheme[#:body] argument requires allowing them).} (and a @scheme[#:body] argument requires allowing them).}
} ]
Here's an alternate specification, which maps rest-like arguments to Here's an alternate specification, which maps rest-like arguments to
the behavior that they imply: the behavior that they imply:
@itemize{ @itemize[
@item{@scheme[#:rest]: Everything is allowed (a body, other keys, @item{@scheme[#:rest]: Everything is allowed (a body, other keys,
and duplicate keys);} and duplicate keys);}
@ -421,7 +421,7 @@ the behavior that they imply:
overridden by an explicit @scheme[#:allow-...] or a overridden by an explicit @scheme[#:allow-...] or a
@scheme[#:forbid-...] mode.} @scheme[#:forbid-...] mode.}
} ]
@; ---------------------------------------- @; ----------------------------------------

View File

@ -38,7 +38,7 @@ created for the ``restarted'' MzScheme. (The new namespace is
installed as the current namespace in the new thread.) In the new installed as the current namespace in the new thread.) In the new
thread, restarting performs the following actions: thread, restarting performs the following actions:
@itemize{ @itemize[
@item{The @scheme[init-namespace] procedure is called with no @item{The @scheme[init-namespace] procedure is called with no
arguments. The return value is ignored.} arguments. The return value is ignored.}
@ -53,7 +53,7 @@ thread, restarting performs the following actions:
@scheme[read-eval-print-loop] returns, the return value for @scheme[read-eval-print-loop] returns, the return value for
@scheme[restart-mzscheme] is set to @scheme[#t].} @scheme[restart-mzscheme] is set to @scheme[#t].}
} ]
Before evaluating command-line arguments, an exit handler is installed Before evaluating command-line arguments, an exit handler is installed
that immediately returns from @scheme[restart-mzscheme] with the value that immediately returns from @scheme[restart-mzscheme] with the value

View File

@ -62,7 +62,7 @@ exn:fail:resource-resource
Like @scheme-make-evaluator or @scheme[make-module-evaluator], but Like @scheme-make-evaluator or @scheme[make-module-evaluator], but
with several differences: with several differences:
@itemize{ @itemize[
@item{The @scheme[language] argument can be one of a fixed set of @item{The @scheme[language] argument can be one of a fixed set of
symbols: @scheme['r5rs], etc. They are converted by adding a symbols: @scheme['r5rs], etc. They are converted by adding a
@ -79,4 +79,4 @@ with several differences:
detect @scheme[require]), and the @scheme[require]d modules are detect @scheme[require]), and the @scheme[require]d modules are
added to the @scheme[#:allow] list for @|scheme-make-evaluator|.} added to the @scheme[#:allow] list for @|scheme-make-evaluator|.}
}} ]}

View File

@ -77,13 +77,13 @@ returned, and if @scheme[str] contains multiple expressions, the
result will be contain multiple values from all subexpressions. result will be contain multiple values from all subexpressions.
The @scheme[err-handler] argument can be: The @scheme[err-handler] argument can be:
@itemize{ @itemize[
@item{@scheme[#f] (the default) which means that errors are not @item{@scheme[#f] (the default) which means that errors are not
caught;} caught;}
@item{a one-argument procedure, which will be used with an exception @item{a one-argument procedure, which will be used with an exception
(when an error occurs) and its result will be returned} (when an error occurs) and its result will be returned}
@item{a thunk, which will be used to produce a result.} @item{a thunk, which will be used to produce a result.}
}} ]}
@defproc[(expr->string [expr any/c]) string?]{ @defproc[(expr->string [expr any/c]) string?]{

View File

@ -344,7 +344,7 @@ exception is raised.}
Creates and returns a new hash table. If provided, each @scheme[flag] Creates and returns a new hash table. If provided, each @scheme[flag]
must one of the following: must one of the following:
@itemize{ @itemize[
@item{@indexed-scheme['weak] --- creates a hash table with @item{@indexed-scheme['weak] --- creates a hash table with
weakly-held keys via @scheme[make-weak-hash], weakly-held keys via @scheme[make-weak-hash],
@ -358,7 +358,7 @@ must one of the following:
keys using @scheme[eqv?] instead of @scheme[eq?] using keys using @scheme[eqv?] instead of @scheme[eq?] using
@scheme[make-hasheqv] or @scheme[make-weak-hasheqv].} @scheme[make-hasheqv] or @scheme[make-weak-hasheqv].}
} ]
By default, key comparisons use @scheme[eq?] (i.e., the hash table is By default, key comparisons use @scheme[eq?] (i.e., the hash table is
created with @scheme[make-hasheq]). If the second @scheme[flag] is created with @scheme[make-hasheq]). If the second @scheme[flag] is

View File

@ -327,7 +327,7 @@ exception.}
A parameter that determines a mapping of proxy servers used for A parameter that determines a mapping of proxy servers used for
connections. Each mapping is a list of three elements: connections. Each mapping is a list of three elements:
@itemize{ @itemize[
@item{the URL scheme, such as @scheme["http"];} @item{the URL scheme, such as @scheme["http"];}
@ -335,7 +335,7 @@ connections. Each mapping is a list of three elements:
@item{the proxy server port number.} @item{the proxy server port number.}
} ]
Currently, the only proxiable scheme is @scheme["http"]. The default Currently, the only proxiable scheme is @scheme["http"]. The default
mapping is the empty list (i.e., no proxies).} mapping is the empty list (i.e., no proxies).}

View File

@ -16,7 +16,7 @@ generic @scheme[ports->ssl-ports] interface.
To use this library, you will need OpenSSL installed on your machine, To use this library, you will need OpenSSL installed on your machine,
but but
@itemize{ @itemize[
@item{for Windows, the PLT Scheme distribution for Windows includes @item{for Windows, the PLT Scheme distribution for Windows includes
the necessary DLLs.} the necessary DLLs.}
@ -26,7 +26,7 @@ but
@item{for Unix, @filepath{libssl.so} and @filepath{libcrypto.so} are @item{for Unix, @filepath{libssl.so} and @filepath{libcrypto.so} are
likely to be installed on your machine, already.} likely to be installed on your machine, already.}
} ]
@defthing[ssl-available? boolean?]{ @defthing[ssl-available? boolean?]{
@ -106,13 +106,13 @@ section @secref["cert-procs"] below for more information on
certificates. certificates.
The @scheme[protocol] must be one of the following: The @scheme[protocol] must be one of the following:
@itemize{ @itemize[
@item{@scheme['sslv2-or-v3] : SSL protocol versions 2 or 3, as @item{@scheme['sslv2-or-v3] : SSL protocol versions 2 or 3, as
appropriate (this is the default)} appropriate (this is the default)}
@item{@scheme['sslv2] : SSL protocol version 2} @item{@scheme['sslv2] : SSL protocol version 2}
@item{@scheme['sslv3] : SSL protocol version 3} @item{@scheme['sslv3] : SSL protocol version 3}
@item{@scheme['tls] : the TLS protocol version 1} @item{@scheme['tls] : the TLS protocol version 1}
} ]
By default, the context returned by @scheme[ssl-make-client-context] does not By default, the context returned by @scheme[ssl-make-client-context] does not
request verification of a server's certificate. Use @scheme[ssl-set-verify!] request verification of a server's certificate. Use @scheme[ssl-set-verify!]

View File

@ -60,7 +60,7 @@ style lexer and parser generators.
An @scheme[re] is matched as follows: An @scheme[re] is matched as follows:
@itemize{ @itemize[
@item{@scheme[id] --- expands to the named @deftech{lexer abbreviation}; @item{@scheme[id] --- expands to the named @deftech{lexer abbreviation};
abbreviations are defined via @scheme[define-lex-abbrev] or supplied by modules abbreviations are defined via @scheme[define-lex-abbrev] or supplied by modules
like @schememodname[parser-tools/lex-sre].} like @schememodname[parser-tools/lex-sre].}
@ -78,7 +78,7 @@ style lexer and parser generators.
The sub-expression must be a set of characters @scheme[re].} The sub-expression must be a set of characters @scheme[re].}
@item{@scheme[(id datum ...)] --- expands the @deftech{lexer macro} named @scheme[id]; macros @item{@scheme[(id datum ...)] --- expands the @deftech{lexer macro} named @scheme[id]; macros
are defined via @scheme[define-lex-trans].} are defined via @scheme[define-lex-trans].}
} ]
Note that both @scheme[(concatenation)] and @scheme[""] match the Note that both @scheme[(concatenation)] and @scheme[""] match the
empty string, @scheme[(union)] matches nothing, empty string, @scheme[(union)] matches nothing,
@ -106,7 +106,7 @@ The suggested prefix is @scheme[:], so that @scheme[:*] and
Since negation is not a common operator on regular expressions, here Since negation is not a common operator on regular expressions, here
are a few examples, using @scheme[:] prefixed SRE syntax: are a few examples, using @scheme[:] prefixed SRE syntax:
@itemize{ @itemize[
@item{@schemeblock0[(complement "1")] @item{@schemeblock0[(complement "1")]
@ -150,13 +150,13 @@ are a few examples, using @scheme[:] prefixed SRE syntax:
words, @scheme[(:* (complement "xx"))] = @scheme[any-string]. It is words, @scheme[(:* (complement "xx"))] = @scheme[any-string]. It is
usually not correct to place a @scheme[:*] around a usually not correct to place a @scheme[:*] around a
@scheme[complement].} @scheme[complement].}
} ]
The following binding have special meaning inside of a lexer The following binding have special meaning inside of a lexer
action: action:
@itemize{ @itemize[
@item{@scheme[start-pos] --- a @scheme[position] struct for the first character matched.} @item{@scheme[start-pos] --- a @scheme[position] struct for the first character matched.}
@item{@scheme[end-pos] --- a @scheme[position] struct for the character after the last character in the match.} @item{@scheme[end-pos] --- a @scheme[position] struct for the character after the last character in the match.}
@item{@scheme[lexeme] --- the matched string.} @item{@scheme[lexeme] --- the matched string.}
@ -181,7 +181,7 @@ are a few examples, using @scheme[:] prefixed SRE syntax:
@scheme[((comment) (return-without-pos (get-token input-port)))] @scheme[((comment) (return-without-pos (get-token input-port)))]
will cause the value of the recursive call to be returned without will cause the value of the recursive call to be returned without
wrapping position around it.} wrapping position around it.}
} ]
The lexer raises an exception @scheme[(exn:read)] if none of the The lexer raises an exception @scheme[(exn:read)] if none of the
regular expressions match the input. Hint: If @scheme[(any-char regular expressions match the input. Hint: If @scheme[(any-char
@ -197,7 +197,7 @@ are a few examples, using @scheme[:] prefixed SRE syntax:
special). The non-@scheme[re] @scheme[trigger] forms handle these special). The non-@scheme[re] @scheme[trigger] forms handle these
cases: cases:
@itemize{ @itemize[
@item{The @scheme[(eof)] rule is matched when the input port @item{The @scheme[(eof)] rule is matched when the input port
returns an @scheme[eof-object] value. If no @scheme[(eof)] returns an @scheme[eof-object] value. If no @scheme[(eof)]
@ -214,7 +214,7 @@ are a few examples, using @scheme[:] prefixed SRE syntax:
port returns a value other than a character, port returns a value other than a character,
@scheme[eof-object], or @scheme[special-comment] structure. If @scheme[eof-object], or @scheme[special-comment] structure. If
no @scheme[(special)] rule is present, the lexer returns no @scheme[(special)] rule is present, the lexer returns
@scheme[(void)].}} @scheme[(void)].}]
End-of-files, specials, special-comments and special-errors can End-of-files, specials, special-comments and special-errors can
never be part of a lexeme with surrounding characters. never be part of a lexeme with surrounding characters.
@ -508,7 +508,7 @@ the right choice when using @scheme[lexer] in other situations.
are no duplicates and all non-@italic{OPTIONAL} declarations are are no duplicates and all non-@italic{OPTIONAL} declarations are
present: present:
@itemize{ @itemize[
@item{@schemeblock0[(grammar (non-terminal-id @item{@schemeblock0[(grammar (non-terminal-id
((grammar-id ...) maybe-prec expr) ((grammar-id ...) maybe-prec expr)
@ -642,7 +642,7 @@ the right choice when using @scheme[lexer] in other situations.
Causes the parser generator not to report shift/reduce or Causes the parser generator not to report shift/reduce or
reduce/reduce conflicts.} reduce/reduce conflicts.}
} ]
The result of a @scheme[parser] expression with one @scheme[start] The result of a @scheme[parser] expression with one @scheme[start]
non-terminal is a function, @scheme[_parse], that takes one non-terminal is a function, @scheme[_parse], that takes one

View File

@ -312,7 +312,7 @@ where @italic{command} is a subcommand from the following list, and
@(define (cmd name desc) @(define (cmd name desc)
@item{@(seclink name (exec name)): @desc}) @item{@(seclink name (exec name)): @desc})
@itemize{ @itemize[
@cmd["create"]{create a PLaneT archive from a directory} @cmd["create"]{create a PLaneT archive from a directory}
@cmd["install"]{download and install a given package} @cmd["install"]{download and install a given package}
@cmd["remove"]{remove the specified package from the local cache} @cmd["remove"]{remove the specified package from the local cache}
@ -325,7 +325,7 @@ where @italic{command} is a subcommand from the following list, and
@cmd["url"]{get a URL for the given package} @cmd["url"]{get a URL for the given package}
@cmd["open"]{unpack the contents of the given package} @cmd["open"]{unpack the contents of the given package}
@cmd["structure"]{display the structure of a given .plt archive} @cmd["structure"]{display the structure of a given .plt archive}
@cmd["print"]{display a file within of the given .plt archive}} @cmd["print"]{display a file within of the given .plt archive}]
Each of these commands is described in more detail below. All the Each of these commands is described in more detail below. All the
functionality of the command-line tool is also provided with a programmatic interface by functionality of the command-line tool is also provided with a programmatic interface by
@ -339,9 +339,9 @@ Create a PLaneT archive in the current directory whose contents are the
directory @exec{<path>}. directory @exec{<path>}.
@exec{<option>} is one of: @exec{<option>} is one of:
@itemize{ @itemize[
@item{@exec{-f, --force}: force a package to be created even if its info.ss file contains @item{@exec{-f, --force}: force a package to be created even if its info.ss file contains
errors.}} errors.}]
@subsection[#:tag "install"]{@exec{install}} @subsection[#:tag "install"]{@exec{install}}
@ -358,9 +358,9 @@ Remove the specified package from the local cache, optionally also removing its
distribution file. distribution file.
@exec{<option>} is one of: @exec{<option>} is one of:
@itemize{ @itemize[
@item{@exec{-e, --erase}: also remove the package's distribution file from the @item{@exec{-e, --erase}: also remove the package's distribution file from the
uninstalled-package cache}} uninstalled-package cache}]
@subsection[#:tag "show"]{@exec{show}} @subsection[#:tag "show"]{@exec{show}}
@ -369,10 +369,10 @@ Usage:
List the packages installed in the local cache. List the packages installed in the local cache.
@exec{<option>} is one of: @exec{<option>} is one of:
@itemize{ @itemize[
@item{@exec{-p, --packages}: show packages only (default)} @item{@exec{-p, --packages}: show packages only (default)}
@item{@exec{-l, --linkage}: show linkage table only} @item{@exec{-l, --linkage}: show linkage table only}
@item{@exec{-a, --all}: show packages and linkage}} @item{@exec{-a, --all}: show packages and linkage}]
@subsection[#:tag "clearlinks"]{@exec{clearlinks}} @subsection[#:tag "clearlinks"]{@exec{clearlinks}}
@ -694,7 +694,7 @@ already-existing package:
PLaneT can distribute whatever programs you write, but keep PLaneT can distribute whatever programs you write, but keep
these guidelines in mind as you write: these guidelines in mind as you write:
@itemize{ @itemize[
@item{Organize your code into modules. Since the PLaneT client is @item{Organize your code into modules. Since the PLaneT client is
integrated into the @scheme[require] form, it works best if your code integrated into the @scheme[require] form, it works best if your code
is arranged into modules.} is arranged into modules.}
@ -709,7 +709,7 @@ instead of
@scheme[(require (planet "helper.ss" ("username" "packagename.plt" 1 0)))] @scheme[(require (planet "helper.ss" ("username" "packagename.plt" 1 0)))]
in files that will also be a part of the package.}} in files that will also be a part of the package.}]
@subsubsection[#:tag "devlinks"]{Development Links} @subsubsection[#:tag "devlinks"]{Development Links}
@ -764,7 +764,7 @@ PLaneT system (as well as the rest of the PLT Scheme tool suite) will
look in it for descriptive metadata about your package. The PLaneT look in it for descriptive metadata about your package. The PLaneT
system looks for certain names in that file: system looks for certain names in that file:
@itemize{ @itemize[
@item{The @scheme['blurb] field: If present, the blurb field should contain a list of XHTML fragments @item{The @scheme['blurb] field: If present, the blurb field should contain a list of XHTML fragments
encoded as x-expressions (see the xml collection for details) that encoded as x-expressions (see the xml collection for details) that
@ -781,7 +781,7 @@ corresponding to the categories under which this package should be listed.
The valid categories are: The valid categories are:
@itemize{ @itemize[
@item{@scheme['devtools]: Development Tools} @item{@scheme['devtools]: Development Tools}
@item{@scheme['net]: Networking and Protocols} @item{@scheme['net]: Networking and Protocols}
@item{@scheme['media]: Graphics and Audio} @item{@scheme['media]: Graphics and Audio}
@ -793,7 +793,7 @@ The valid categories are:
@item{@scheme['ui]: Textual and Graphical User Interface} @item{@scheme['ui]: Textual and Graphical User Interface}
@item{@scheme['metaprogramming]: Metaprogramming Tools} @item{@scheme['metaprogramming]: Metaprogramming Tools}
@item{@scheme['planet]: PLaneT-Related} @item{@scheme['planet]: PLaneT-Related}
@item{@scheme['misc]: Miscellaneous}} @item{@scheme['misc]: Miscellaneous}]
If you put symbols other than these the categories field, they will be If you put symbols other than these the categories field, they will be
ignored. If you put no legal symbols in the categories field or do not ignored. If you put no legal symbols in the categories field or do not
@ -882,7 +882,7 @@ or above version 4.0), and the string @scheme["3xx"] indicates that
the package should be included in the v3xx repository (containing the package should be included in the v3xx repository (containing
packages intended to run in PLT Scheme versions in the 3xx series). A packages intended to run in PLT Scheme versions in the 3xx series). A
single package (and a single version of a package) may be included in single package (and a single version of a package) may be included in
multiple repositories with the same PLaneT version number.}} multiple repositories with the same PLaneT version number.}]
In addition, PLaneT uses the setup-plt installer to install packages In addition, PLaneT uses the setup-plt installer to install packages
on client machines, so most fields it looks for can be included with on client machines, so most fields it looks for can be included with
@ -951,7 +951,7 @@ of thumb is to remember that modules written to work with the
previously-released version of your package should unmodified with the previously-released version of your package should unmodified with the
new package. This means that at a minimum, a backwards compatible new package. This means that at a minimum, a backwards compatible
update should: update should:
@itemize{ @itemize[
@item{Contain all the same Scheme source files in that the previous @item{Contain all the same Scheme source files in that the previous
version contained in directories intended for public access} version contained in directories intended for public access}
@item{In each public file, provide at least all the bindings that the @item{In each public file, provide at least all the bindings that the
@ -959,9 +959,9 @@ previous version provided}
@item{For each name provided with a contract (see @(secref #:doc '(lib @item{For each name provided with a contract (see @(secref #:doc '(lib
"scribblings/guide/guide.scrbl") "contracts" )), provide it "scribblings/guide/guide.scrbl") "contracts" )), provide it
with a contract that is at least as permissive as the previous with a contract that is at least as permissive as the previous
contract}} contract}]
A backwards-compatible upgrade may, however: A backwards-compatible upgrade may, however:
@itemize{ @itemize[
@item{Change any behavior that @item{Change any behavior that
reasonable consumers of your package would not consider guaranteed reasonable consumers of your package would not consider guaranteed
(@italic{e.g.}, by fixing bugs or improving the efficiency of (@italic{e.g.}, by fixing bugs or improving the efficiency of
@ -970,7 +970,7 @@ operations).}
sections. By convention, the contents of any directory called sections. By convention, the contents of any directory called
@filepath{private} are considered private and should not be relied @filepath{private} are considered private and should not be relied
upon by external users of your package.} upon by external users of your package.}
@item{Extend the set of names exported by a module.}} @item{Extend the set of names exported by a module.}]
Currently these rules are guidelines only, but in the future some or Currently these rules are guidelines only, but in the future some or
all of them may be enforced programmatically. Ultimately, though, no all of them may be enforced programmatically. Ultimately, though, no
technical device can precisely capture what it means for a package to technical device can precisely capture what it means for a package to

View File

@ -62,7 +62,7 @@ argument/value pairs after the data.
Besides plotting lines from functions in 2-D, the plotter can also Besides plotting lines from functions in 2-D, the plotter can also
render a variety of other data in several ways: render a variety of other data in several ways:
@itemize{ @itemize[
@item{Discrete data, such as @item{Discrete data, such as
@ -73,13 +73,13 @@ render a variety of other data in several ways:
can be interpreted in several ways: can be interpreted in several ways:
@itemize{ @itemize[
@item{As points: @scheme[(plot (points _data))]} @item{As points: @scheme[(plot (points _data))]}
@item{As error data: @scheme[(plot (error-bars _data))]} @item{As error data: @scheme[(plot (error-bars _data))]}
} ]
} }
@item{A function of two variables, such as @item{A function of two variables, such as
@ -90,7 +90,7 @@ render a variety of other data in several ways:
can be plotted on a 2d graph can be plotted on a 2d graph
@itemize{ @itemize[
@item{Using contours to represent height (z) @item{Using contours to represent height (z)
@ -112,11 +112,11 @@ render a variety of other data in several ways:
(plot (vector-field (gradient 3dfun))) (plot (vector-field (gradient 3dfun)))
] ]
} }
} ]
or in a 3d box or in a 3d box
@itemize{ @itemize[
@item{Displaying only the top of the surface @item{Displaying only the top of the surface
@ -124,10 +124,10 @@ render a variety of other data in several ways:
(plot3d (surface 3dfun)) (plot3d (surface 3dfun))
] ]
} }
} ]
} }
} ]
@subsection[#:tag "ex-curve-fit"]{Curve Fitting} @subsection[#:tag "ex-curve-fit"]{Curve Fitting}
@ -136,7 +136,7 @@ algorithm to fit parameterized functions to given data.
To fit a particular function to a curve: To fit a particular function to a curve:
@itemize{ @itemize[
@item{Set up the independent and dependent variable data. The first @item{Set up the independent and dependent variable data. The first
item in each vector is the independent variable, the second is the item in each vector is the independent variable, the second is the
@ -196,7 +196,7 @@ To fit a particular function to a curve:
#:y-max 15) #:y-max 15)
] ]
} }
} ]
A more realistic example can be found in A more realistic example can be found in
@filepath{demos/fit-demo-2.ss} in the @filepath{plot} collection. @filepath{demos/fit-demo-2.ss} in the @filepath{plot} collection.

View File

@ -96,7 +96,7 @@ values in the same way the REPL does. The conversion process does not
transform every continuous piece of text into a single Scheme string transform every continuous piece of text into a single Scheme string
because doing this: because doing this:
@itemize{ @itemize[
@item{the Scheme process will need to allocating big strings which makes @item{the Scheme process will need to allocating big strings which makes
this unfeasible for big files,} this unfeasible for big files,}
@ -107,7 +107,7 @@ because doing this:
@item{special treatment for newlines in these strings will become expensive.} @item{special treatment for newlines in these strings will become expensive.}
} ]
(Note that this is different from the BRL approach.) (Note that this is different from the BRL approach.)
@ -118,7 +118,7 @@ where text is transformed into Scheme expressions. These directives
cannot be changed from withing transformed text because they change the cannot be changed from withing transformed text because they change the
way this transformation happens. Some of these transformation way this transformation happens. Some of these transformation
@itemize{ @itemize[
@item{Skipping input: @item{Skipping input:
@ -142,7 +142,7 @@ way this transformation happens. Some of these transformation
@verbatim[#:indent 2]|{ @verbatim[#:indent 2]|{
shell output shell output
Some preprocessed text Some preprocessed text
123*456*789 = 44253432} 123*456*789 = 44253432
}|} }|}
@item{Quoting the markers: @item{Quoting the markers:
@ -170,7 +170,7 @@ way this transformation happens. Some of these transformation
change already-transformed text, which is the reason for this special change already-transformed text, which is the reason for this special
format.} format.}
} ]
@section{The mzpp read-eval-print loop} @section{The mzpp read-eval-print loop}
@ -182,7 +182,7 @@ code that @DFlag{debug} shows). Each expression is evaluated and its result
is printed using the @scheme[show] function (multiple values are all printed), where is printed using the @scheme[show] function (multiple values are all printed), where
@scheme[show] works in the following way: @scheme[show] works in the following way:
@itemize{ @itemize[
@item{@|void-const| and @scheme[#f] values are ignored.} @item{@|void-const| and @scheme[#f] values are ignored.}
@ -201,7 +201,7 @@ is printed using the @scheme[show] function (multiple values are all printed), w
@item{All other values are printed with @scheme[display]. No newlines are used @item{All other values are printed with @scheme[display]. No newlines are used
after printing values.} after printing values.}
} ]
@section[#:tag "mzpp-lib"]{Provided bindings} @section[#:tag "mzpp-lib"]{Provided bindings}

View File

@ -68,9 +68,9 @@ generates this output:
An explanation of a few lines: An explanation of a few lines:
@itemize{ @itemize[
@item{@litchar|{@"bar"}|, @litchar|{[@(+ 1 2)}|---the Scheme objects @item{@litchar|{@"bar"}|, @litchar|{@(+ 1 2)}|---the Scheme objects
that is read is evaluated and displayed back on the input port which that is read is evaluated and displayed back on the input port which
is then printed.} is then printed.}
@ -82,11 +82,11 @@ An explanation of a few lines:
@item{@litchar|{@(/ (read) 3)12}| --- demonstrates that the Scheme @item{@litchar|{@(/ (read) 3)12}| --- demonstrates that the Scheme
code can do anything with the current input.} code can do anything with the current input.}
} ]
The complete behavior of the command dispatcher follows: The complete behavior of the command dispatcher follows:
@itemize{ @itemize[
@item{If the marker sequence is followed by itself, then it is simply @item{If the marker sequence is followed by itself, then it is simply
displayed, using the default, @litchar["@@"] outputs a @litchar["@"].} displayed, using the default, @litchar["@@"] outputs a @litchar["@"].}
@ -94,7 +94,7 @@ The complete behavior of the command dispatcher follows:
@item{Otherwise a Scheme expression is read and evaluated, and the result is @item{Otherwise a Scheme expression is read and evaluated, and the result is
processed as follows: processed as follows:
@itemize{ @itemize[
@item{If the result consists of multiple values, each one is processed,} @item{If the result consists of multiple values, each one is processed,}
@ -118,13 +118,13 @@ The complete behavior of the command dispatcher follows:
@item{All other values are ignored.} @item{All other values are ignored.}
} ]
} }
@item{When this processing is done, and printable results have been re-added @item{When this processing is done, and printable results have been re-added
to the input port, control is returned to the main processing loop.} to the input port, control is returned to the main processing loop.}
} ]
A built-in convenient behavior is that if the evaluation of the Scheme A built-in convenient behavior is that if the evaluation of the Scheme
expression returned a @|void-const| or @scheme[#f] value (or multiple values that are expression returned a @|void-const| or @scheme[#f] value (or multiple values that are
@ -145,7 +145,7 @@ done in a better way using macros). The special treatment of procedure
values is what allows more powerful constructs. There are handled by values is what allows more powerful constructs. There are handled by
their arity (preferring a the nullary treatment over the unary one): their arity (preferring a the nullary treatment over the unary one):
@itemize{ @itemize[
@item{A procedure of arity 0 is simply invoked, and its resulting value is @item{A procedure of arity 0 is simply invoked, and its resulting value is
used. The procedure can freely use the input stream to retrieve used. The procedure can freely use the input stream to retrieve
@ -218,7 +218,7 @@ their arity (preferring a the nullary treatment over the unary one):
facility that is rarely needed, similarly to the fact that @scheme[call/cc] facility that is rarely needed, similarly to the fact that @scheme[call/cc]
is rarely needed in Scheme.} is rarely needed in Scheme.}
} ]
Remember that when procedures are used, generated output is not Remember that when procedures are used, generated output is not
reprocessed, just like evaluating other expressions. reprocessed, just like evaluating other expressions.
@ -375,7 +375,7 @@ Dispatching-related bindings:
commands. It should be used as a command, not from Scheme code commands. It should be used as a command, not from Scheme code
directly, and it should receive three arguments: directly, and it should receive three arguments:
@itemize{ @itemize[
@item{The name for the new command (the contents of this argument is @item{The name for the new command (the contents of this argument is
converted to a string),} converted to a string),}
@ -386,7 +386,7 @@ Dispatching-related bindings:
@item{Arbitrary text, with @bold{textual} instances of the variables that @item{Arbitrary text, with @bold{textual} instances of the variables that
denote places they are used.} denote places they are used.}
} ]
For example, the sample code above: For example, the sample code above:

View File

@ -35,7 +35,7 @@ without an additional glue script or a makefile. The following examples
use @exec{mzpp}, but they work with @exec{mztext} too. @DFlag{run} uses a single use @exec{mzpp}, but they work with @exec{mztext} too. @DFlag{run} uses a single
argument which is a string specifying a command to run: argument which is a string specifying a command to run:
@itemize{ @itemize[
@item{1. In its simplest form, the command string specifies some shell command @item{1. In its simplest form, the command string specifies some shell command
which will be executed with its standard input piped in from the which will be executed with its standard input piped in from the
@ -59,7 +59,7 @@ argument which is a string specifying a command to run:
@item{4. Any other cases where the command string contains a @litchar{*} are invalid.} @item{4. Any other cases where the command string contains a @litchar{*} are invalid.}
} ]
If an executed command fails with a return status different than 0, the If an executed command fails with a return status different than 0, the
preprocessor execution will signal a failure by returning 1. preprocessor execution will signal a failure by returning 1.

View File

@ -40,7 +40,7 @@ this table looks like:
Where actual numbers appear in the printout. The meaning of the Where actual numbers appear in the printout. The meaning of the
numbers and labels is as follows: numbers and labels is as follows:
@itemize{ @itemize[
@item{@tt{A} --- the name of the function that this node represents, @item{@tt{A} --- the name of the function that this node represents,
followed by the source location for the function if it is known. followed by the source location for the function if it is known.
The name can be ``???'' for functions with no identifier, but in The name can be ``???'' for functions with no identifier, but in
@ -87,7 +87,7 @@ numbers and labels is as follows:
These values correspond to the @scheme[edge-caller-time] and These values correspond to the @scheme[edge-caller-time] and
@scheme[edge-callee-time] fields; see the documentation for further @scheme[edge-callee-time] fields; see the documentation for further
details.} details.}
} ]
The function has a few keyword arguments to customize its output: The function has a few keyword arguments to customize its output:
@itemize[ @itemize[

View File

@ -179,7 +179,7 @@ are members of the named package.
@section[#:tag "advanced:import"]{@scheme[import]} @section[#:tag "advanced:import"]{@scheme[import]}
@elemtag['(adv "import")] @elemtag['(adv "import")]
@itemize{ @itemize[
@item{@(scheme import Name (code:comment "")) @item{@(scheme import Name (code:comment ""))
Imports a specified class to use within the program.} Imports a specified class to use within the program.}
@ -187,12 +187,12 @@ are members of the named package.
Imports a group of classes that can all be used within the program.} Imports a group of classes that can all be used within the program.}
} ]
@section[#:tag "advanced:class"]{@scheme[class]} @section[#:tag "advanced:class"]{@scheme[class]}
@elemtag['(adv "class")] @elemtag['(adv "class")]
@itemize{ @itemize[
@item{@(scheme class Id { Member ...}) @item{@(scheme class Id { Member ...})
Creates a class named Id. If no constructor is present, one is generated that takes no arguments. Creates a class named Id. If no constructor is present, one is generated that takes no arguments.
@ -237,13 +237,13 @@ are members of the named package.
the listed interfaces. the listed interfaces.
} }
} ]
@section[#:tag "advanced:iface"]{@scheme[interface]} @section[#:tag "advanced:iface"]{@scheme[interface]}
@elemtag['(adv "iface")] @elemtag['(adv "iface")]
@itemize{ @itemize[
@item{@(scheme interface Id { Signature ... }) @item{@(scheme interface Id { Signature ... })
@ -254,7 +254,7 @@ are members of the named package.
Creates an interface named Id that specifies a set of method signatures for classes to implement, and Creates an interface named Id that specifies a set of method signatures for classes to implement, and
inherits the method signatures of the interfaces specified in the extends list. inherits the method signatures of the interfaces specified in the extends list.
} }
} ]
@elemtag['(adv "sig")] @elemtag['(adv "sig")]
@ -284,7 +284,7 @@ by all members of the same package.
@elemtag['(adv "field")] @elemtag['(adv "field")]
@itemize{ @itemize[
@item{@(scheme Type Id (code:comment "")) @item{@(scheme Type Id (code:comment ""))
Creates a field, bound to Id, that can be used within the current class, or on instances of the Creates a field, bound to Id, that can be used within the current class, or on instances of the
@ -303,7 +303,7 @@ by all members of the same package.
current class using an @elemref['(adv "acc")]{expression}. current class using an @elemref['(adv "acc")]{expression}.
This field must have an array type and the value is that of the evaluated @elemref['(adv "ainit")]{array initialization specification}. This field must have an array type and the value is that of the evaluated @elemref['(adv "ainit")]{array initialization specification}.
} }
} ]
All fields with @(scheme static) preceeding their declaration are tied to the class and not tied All fields with @(scheme static) preceeding their declaration are tied to the class and not tied
to an instance of the class. They can be accessed and initialized using the standard techniques to an instance of the class. They can be accessed and initialized using the standard techniques
@ -354,7 +354,7 @@ is unique. Each constructor may set its own @elemref['(adv "mods")]{access}. A c
@elemtag['(adv "stmt")]{} @elemtag['(adv "stmt")]{}
@itemize{ @itemize[
@item{@elemtag['(adv "asgn")] @(scheme Expression = Expression (code:comment "")) @item{@elemtag['(adv "asgn")] @(scheme Expression = Expression (code:comment ""))
The first expression must be a field reference, array position reference, or a variable. The first expression must be a field reference, array position reference, or a variable.
@ -449,7 +449,7 @@ is unique. Each constructor may set its own @elemref['(adv "mods")]{access}. A c
This set of expressions can be used in a statement position, provided they This set of expressions can be used in a statement position, provided they
are followed by ';'. are followed by ';'.
} }
} ]
@section[#:tag "advanced:arrayInt"]{@scheme[ArrayInit]} @section[#:tag "advanced:arrayInt"]{@scheme[ArrayInit]}
@ -469,7 +469,7 @@ with their values specified by the ArrayInit.
@section[#:tag "advanced:expr"]{@scheme[Expression]} @section[#:tag "advanced:expr"]{@scheme[Expression]}
@itemize{ @itemize[
@item{@elemtag['(adv "op")]@(scheme Expression Op Expression) @item{@elemtag['(adv "op")]@(scheme Expression Op Expression)
@ -611,4 +611,4 @@ with their values specified by the ArrayInit.
@item{@(scheme false)} @item{@(scheme false)}
} ]

View File

@ -78,7 +78,7 @@ An @(scheme Id) is a sequence of alphanumeric characters, _, and $.
@section{@scheme[import]} @section{@scheme[import]}
@elemtag['(beg "import")] @elemtag['(beg "import")]
@itemize{ @itemize[
@item{@(scheme import Name (code:comment "")) @item{@(scheme import Name (code:comment ""))
Imports a specified class to use within the program.} Imports a specified class to use within the program.}
@ -86,12 +86,12 @@ An @(scheme Id) is a sequence of alphanumeric characters, _, and $.
Imports a group of classes that can all be used within the program.} Imports a group of classes that can all be used within the program.}
} ]
@section{@scheme[class]} @section{@scheme[class]}
@elemtag['(beg "class")] @elemtag['(beg "class")]
@itemize{ @itemize[
@item{@(scheme class Id { Member Member ...}) @item{@(scheme class Id { Member Member ...})
Creates a class named Id. One member is required and must be a @elemref['(beg "ctor")]{constructor.} Creates a class named Id. One member is required and must be a @elemref['(beg "ctor")]{constructor.}
@ -102,7 +102,7 @@ An @(scheme Id) is a sequence of alphanumeric characters, _, and $.
named by (scheme implements). One member must be a @elemref['(beg "ctor")]{constructor}. named by (scheme implements). One member must be a @elemref['(beg "ctor")]{constructor}.
Any @elemref['(beg "sig")]{method} defined by the interface must be a member of this class. Any @elemref['(beg "sig")]{method} defined by the interface must be a member of this class.
} }
} ]
@section{@scheme[interface]} @section{@scheme[interface]}
@ -124,7 +124,7 @@ return type, and argument types.
@elemtag['(beg "field")] @elemtag['(beg "field")]
@itemize{ @itemize[
@item{@(scheme Type Id (code:comment "")) @item{@(scheme Type Id (code:comment ""))
Creates a field, bound to Id, that can be used within the current class, or on instances of the Creates a field, bound to Id, that can be used within the current class, or on instances of the
@ -139,7 +139,7 @@ return type, and argument types.
This field will have the declared type and the value of the evaluated @(scheme Expression). This field will have the declared type and the value of the evaluated @(scheme Expression).
@(scheme Expression) may not refer to other fields in the current class. @(scheme Expression) may not refer to other fields in the current class.
} }
} ]
@section{@scheme[Method]} @section{@scheme[Method]}
@ -167,7 +167,7 @@ The initialization statements pass the value provided to the constructor to the
@section{@scheme[Statement]} @section{@scheme[Statement]}
@elemtag['(beg "stmt")] @elemtag['(beg "stmt")]
@itemize{ @itemize[
@item{@elemtag['(beg "if")] @(scheme if (Expression) { Statement } else { Statement }) @item{@elemtag['(beg "if")] @(scheme if (Expression) { Statement } else { Statement })
In this statement the expression should have a boolean type. It is evaluated first. In this statement the expression should have a boolean type. It is evaluated first.
@ -180,11 +180,11 @@ The initialization statements pass the value provided to the constructor to the
as the result of the @elemref['(beg "method")]{method} in which it is contained. as the result of the @elemref['(beg "method")]{method} in which it is contained.
} }
} ]
@section{@scheme[Expression]} @section{@scheme[Expression]}
@itemize{ @itemize[
@item{@elemtag['(beg "op")]@(scheme Expression Op Expression) @item{@elemtag['(beg "op")]@(scheme Expression Op Expression)
@ -252,4 +252,4 @@ The initialization statements pass the value provided to the constructor to the
} }
@item{@(scheme true)} @item{@(scheme true)}
@item{@(scheme false)} @item{@(scheme false)}
} ]

View File

@ -116,7 +116,7 @@ An @(scheme Id) is a sequence of alphanumeric characters, _, and $.
@section[#:tag "intermedAcc:import"]{@scheme[import]} @section[#:tag "intermedAcc:import"]{@scheme[import]}
@elemtag['(inta "import")] @elemtag['(inta "import")]
@itemize{ @itemize[
@item{@(scheme import Name (code:comment "")) @item{@(scheme import Name (code:comment ""))
Imports a specified class to use within the program.} Imports a specified class to use within the program.}
@ -124,12 +124,12 @@ An @(scheme Id) is a sequence of alphanumeric characters, _, and $.
Imports a group of classes that can all be used within the program.} Imports a group of classes that can all be used within the program.}
} ]
@section[#:tag "intermedAcc:class"]{@scheme[class]} @section[#:tag "intermedAcc:class"]{@scheme[class]}
@elemtag['(inta "class")] @elemtag['(inta "class")]
@itemize{ @itemize[
@item{@(scheme class Id { Member ...}) @item{@(scheme class Id { Member ...})
Creates a class named Id. If no constructor is present, one is generated that takes no arguments. Creates a class named Id. If no constructor is present, one is generated that takes no arguments.
@ -174,13 +174,13 @@ An @(scheme Id) is a sequence of alphanumeric characters, _, and $.
the listed interfaces. the listed interfaces.
} }
} ]
@section[#:tag "intermedAcc:iface"]{@scheme[interface]} @section[#:tag "intermedAcc:iface"]{@scheme[interface]}
@elemtag['(inta "iface")] @elemtag['(inta "iface")]
@itemize{ @itemize[
@item{@(scheme interface Id { Signature ... }) @item{@(scheme interface Id { Signature ... })
@ -191,7 +191,7 @@ An @(scheme Id) is a sequence of alphanumeric characters, _, and $.
Creates an interface named Id that specifies a set of method signatures for classes to implement, and Creates an interface named Id that specifies a set of method signatures for classes to implement, and
inherits the method signatures of the interfaces specified in the extends list. inherits the method signatures of the interfaces specified in the extends list.
} }
} ]
@elemtag['(inta "sig")] @elemtag['(inta "sig")]
@ -219,7 +219,7 @@ by the containing class. A protected member can be accessed by the containing cl
@elemtag['(inta "field")] @elemtag['(inta "field")]
@itemize{ @itemize[
@item{@(scheme Type Id (code:comment "")) @item{@(scheme Type Id (code:comment ""))
Creates a field, bound to Id, that can be used within the current class, or on instances of the Creates a field, bound to Id, that can be used within the current class, or on instances of the
@ -232,7 +232,7 @@ by the containing class. A protected member can be accessed by the containing cl
current class using an @elemref['(inta "acc")]{expression}. current class using an @elemref['(inta "acc")]{expression}.
This field will have the declared type and the value of the evaluated @(scheme Expression). This field will have the declared type and the value of the evaluated @(scheme Expression).
} }
} ]
@section[#:tag "intermedAcc:method"]{@scheme[Method]} @section[#:tag "intermedAcc:method"]{@scheme[Method]}
@ -267,7 +267,7 @@ us unique. Each constructor may set its own @elemref['(inta "mods")]{access}. A
@elemtag['(inta "stmt")]{} @elemtag['(inta "stmt")]{}
@itemize{ @itemize[
@item{@elemtag['(inta "if")] @(scheme if (Expression) { Statement ... } else { Statement ...}) @item{@elemtag['(inta "if")] @(scheme if (Expression) { Statement ... } else { Statement ...})
In this statement the expression should have a boolean type. It is evaluated first. In this statement the expression should have a boolean type. It is evaluated first.
@ -314,11 +314,11 @@ us unique. Each constructor may set its own @elemref['(inta "mods")]{access}. A
This set of expressions can be used in a statement position, provided they This set of expressions can be used in a statement position, provided they
are followed by ';'. are followed by ';'.
} }
} ]
@section[#:tag "intermedAcc:expr"]{@scheme[Expression]} @section[#:tag "intermedAcc:expr"]{@scheme[Expression]}
@itemize{ @itemize[
@item{@elemtag['(inta "op")]@(scheme Expression Op Expression) @item{@elemtag['(inta "op")]@(scheme Expression Op Expression)
@ -421,4 +421,4 @@ us unique. Each constructor may set its own @elemref['(inta "mods")]{access}. A
@item{@(scheme false)} @item{@(scheme false)}
} ]

View File

@ -109,7 +109,7 @@ An @(scheme Id) is a sequence of alphanumeric characters, _, and $.
@section[#:tag "intermed:import"]{@scheme[import]} @section[#:tag "intermed:import"]{@scheme[import]}
@elemtag['(int "import")] @elemtag['(int "import")]
@itemize{ @itemize[
@item{@(scheme import Name (code:comment "")) @item{@(scheme import Name (code:comment ""))
Imports a specified class to use within the program.} Imports a specified class to use within the program.}
@ -117,12 +117,12 @@ An @(scheme Id) is a sequence of alphanumeric characters, _, and $.
Imports a group of classes that can all be used within the program.} Imports a group of classes that can all be used within the program.}
} ]
@section[#:tag "intermed:class"]{@scheme[class]} @section[#:tag "intermed:class"]{@scheme[class]}
@elemtag['(int "class")] @elemtag['(int "class")]
@itemize{ @itemize[
@item{@(scheme class Id { Member ...}) @item{@(scheme class Id { Member ...})
Creates a class named Id. If no constructor is present, one is generated that takes no arguments. Creates a class named Id. If no constructor is present, one is generated that takes no arguments.
@ -167,13 +167,13 @@ An @(scheme Id) is a sequence of alphanumeric characters, _, and $.
the listed interfaces. the listed interfaces.
} }
} ]
@section[#:tag "intermed:iface"]{@scheme[interface]} @section[#:tag "intermed:iface"]{@scheme[interface]}
@elemtag['(int "iface")] @elemtag['(int "iface")]
@itemize{ @itemize[
@item{@(scheme interface Id { Signature ... }) @item{@(scheme interface Id { Signature ... })
@ -184,7 +184,7 @@ An @(scheme Id) is a sequence of alphanumeric characters, _, and $.
Creates an interface named Id that specifies a set of method signatures for classes to implement, and Creates an interface named Id that specifies a set of method signatures for classes to implement, and
inherits the method signatures of the interfaces specified in the extends list. inherits the method signatures of the interfaces specified in the extends list.
} }
} ]
@elemtag['(int "sig")] @elemtag['(int "sig")]
@ -204,7 +204,7 @@ all signatures are by default abstract.
@elemtag['(int "field")] @elemtag['(int "field")]
@itemize{ @itemize[
@item{@(scheme Type Id (code:comment "")) @item{@(scheme Type Id (code:comment ""))
Creates a field, bound to Id, that can be used within the current class, or on instances of the Creates a field, bound to Id, that can be used within the current class, or on instances of the
@ -217,7 +217,7 @@ all signatures are by default abstract.
current class using an @elemref['(int "acc")]{expression}. current class using an @elemref['(int "acc")]{expression}.
This field will have the declared type and the value of the evaluated @(scheme Expression). This field will have the declared type and the value of the evaluated @(scheme Expression).
} }
} ]
@section[#:tag "intermed:method"]{@scheme[Method]} @section[#:tag "intermed:method"]{@scheme[Method]}
@ -247,7 +247,7 @@ parameters, then the first statement in the constructor must be a @elemref['(int
@section[#:tag "intermed:stmt"]{@scheme[Statement]} @section[#:tag "intermed:stmt"]{@scheme[Statement]}
@elemtag['(int "stmt")] @elemtag['(int "stmt")]
@itemize{ @itemize[
@item{@elemtag['(int "if")] @(scheme if (Expression) { Statement ... } else { Statement ...}) @item{@elemtag['(int "if")] @(scheme if (Expression) { Statement ... } else { Statement ...})
In this statement the expression should have a boolean type. It is evaluated first. In this statement the expression should have a boolean type. It is evaluated first.
@ -289,7 +289,7 @@ parameters, then the first statement in the constructor must be a @elemref['(int
This set of expressions can be used in a statement position, provided they This set of expressions can be used in a statement position, provided they
are followed by ';'. are followed by ';'.
} }
} ]
@ -297,7 +297,7 @@ parameters, then the first statement in the constructor must be a @elemref['(int
@section[#:tag "intermed:expr"]{@scheme[Expression]} @section[#:tag "intermed:expr"]{@scheme[Expression]}
@itemize{ @itemize[
@item{@elemtag['(int "op")]@(scheme Expression Op Expression) @item{@elemtag['(int "op")]@(scheme Expression Op Expression)
@ -400,4 +400,4 @@ parameters, then the first statement in the constructor must be a @elemref['(int
@item{@(scheme false)} @item{@(scheme false)}
} ]

View File

@ -45,7 +45,7 @@ includes tools and libraries for running @|r5rs| programs.
PLT Scheme provides several layers of support for programs written PLT Scheme provides several layers of support for programs written
according to @|r5rs|: according to @|r5rs|:
@itemize{ @itemize[
@item{DrScheme provides an @onscreen{R5RS} language, which can be @item{DrScheme provides an @onscreen{R5RS} language, which can be
selected via the @menuitem["Language" "Choose Language..."] selected via the @menuitem["Language" "Choose Language..."]
@ -69,7 +69,7 @@ according to @|r5rs|:
@|r5rs| read-eval-print loop. See @secref["r5rs/init-mod"] @|r5rs| read-eval-print loop. See @secref["r5rs/init-mod"]
(later in this manual) for more information.} (later in this manual) for more information.}
} ]
@; ---------------------------------------- @; ----------------------------------------

View File

@ -48,7 +48,7 @@ other modules.
To run a top-level program, either: To run a top-level program, either:
@itemize{ @itemize[
@item{Use the @exec{plt-r6rs} executable, supplying the file that @item{Use the @exec{plt-r6rs} executable, supplying the file that
contains the program on the command line: contains the program on the command line:
@ -109,7 +109,7 @@ To run a top-level program, either:
DrScheme and clicking @onscreen{Run} prints ``hello'' within DrScheme and clicking @onscreen{Run} prints ``hello'' within
the DrScheme interactions window.} the DrScheme interactions window.}
} ]
@; ---------------------------------------- @; ----------------------------------------
@ -237,7 +237,7 @@ To ensure that all @|r6rs| library names can be converted to a unique
and distinct library module path, the following conversions are and distinct library module path, the following conversions are
applied to each symbol before concatenating them: applied to each symbol before concatenating them:
@itemize{ @itemize[
@item{The symbol is encoded using UTF-8, and the resulting bytes are @item{The symbol is encoded using UTF-8, and the resulting bytes are
treated as Latin-1 encoded characters. ASCII letters, digits, treated as Latin-1 encoded characters. ASCII letters, digits,
@ -254,7 +254,7 @@ applied to each symbol before concatenating them:
and the implicit @schemeidfont{main} when a library path has a single and the implicit @schemeidfont{main} when a library path has a single
symbol element.} symbol element.}
} ]
Examples (assuming a typical PLT Scheme installation): Examples (assuming a typical PLT Scheme installation):

View File

@ -115,7 +115,7 @@ given term, Redex assumes that it will always match that term.
(code:line ... (code:comment "literal ellipsis")) (code:line ... (code:comment "literal ellipsis"))
..._id]) ..._id])
@itemize{ @itemize[
@item{The @defpattech[any] @pattern matches any sepxression. @item{The @defpattech[any] @pattern matches any sepxression.
This @pattern may also be suffixed with an underscore and another This @pattern may also be suffixed with an underscore and another
@ -319,7 +319,7 @@ two matches occur, one where @tt{x} is bound to @scheme['()] and
bound to @scheme['()]. bound to @scheme['()].
} }
} ]
@defform*[[(redex-match lang #, @|ttpattern| any) @defform*[[(redex-match lang #, @|ttpattern| any)
(redex-match lang #, @|ttpattern|)]]{ (redex-match lang #, @|ttpattern|)]]{
@ -410,7 +410,7 @@ stands for repetition unless otherwise indicated):
,@scheme-expression ,@scheme-expression
(code:line ... (code:comment "literal ellipsis"))]) (code:line ... (code:comment "literal ellipsis"))])
@itemize{ @itemize[
@item{A term written @scheme[_identifier] is equivalent to the @item{A term written @scheme[_identifier] is equivalent to the
corresponding symbol, unless the identifier is bound by corresponding symbol, unless the identifier is bound by
@ -437,7 +437,7 @@ them.}
@item{A term written as a literal boolean or a string @item{A term written as a literal boolean or a string
produces the boolean or the string.} produces the boolean or the string.}
} ]
@defform[(term #, @|tttterm|)]{ @defform[(term #, @|tttterm|)]{
@ -1882,7 +1882,7 @@ lw structs for each of the non-lws in the
list (see the description of lw below for an list (see the description of lw below for an
explanation of logical-space): explanation of logical-space):
@itemize{ @itemize[
@item{ @item{
If there are two adjacent lws, then the logical If there are two adjacent lws, then the logical
space between them is filled with whitespace.} space between them is filled with whitespace.}
@ -1903,7 +1903,7 @@ explanation of logical-space):
the logical space between the two lws is the logical space between the two lws is
absorbed by a new lw that renders using no absorbed by a new lw that renders using no
actual space in the typeset version. actual space in the typeset version.
}} }]
} }

View File

@ -5,7 +5,7 @@
The following people have contributed to SchemeUnit: The following people have contributed to SchemeUnit:
@itemize{ @itemize[
@item{Robby Findler pushed me to release version 3} @item{Robby Findler pushed me to release version 3}
@item{Matt Jadud and his students at Olin College @item{Matt Jadud and his students at Olin College
@ -42,4 +42,4 @@ The following people have contributed to SchemeUnit:
@item{The Extreme Programming community started the whole @item{The Extreme Programming community started the whole
testing framework thing} testing framework thing}
} ]

View File

@ -39,7 +39,7 @@ Teachpacks are designed to supplement student programs with code that
cannot be expressed in a teaching language. For cannot be expressed in a teaching language. For
example, to enable students to play hangman, we supply a teachpack that example, to enable students to play hangman, we supply a teachpack that
@itemize{ @itemize[
@item{implements the random choosing of a word,} @item{implements the random choosing of a word,}
@ -47,7 +47,7 @@ example, to enable students to play hangman, we supply a teachpack that
@item{manages the GUI.} @item{manages the GUI.}
} ]
All these tasks are beyond students in the third week and/or impose All these tasks are beyond students in the third week and/or impose
memorization of currently useless knowledge on students. The essence memorization of currently useless knowledge on students. The essence

View File

@ -13,7 +13,7 @@ is @indexed-file{.ss}. The extensions @indexed-file{.scm} and
DrScheme's editor can save a program file in two different formats: DrScheme's editor can save a program file in two different formats:
@itemize{ @itemize[
@item{@deftech{Plain-text file format} --- All text editors can read @item{@deftech{Plain-text file format} --- All text editors can read
this format. DrScheme saves a program in plain-text format by this format. DrScheme saves a program in plain-text format by
@ -34,7 +34,7 @@ DrScheme's editor can save a program file in two different formats:
encoding (so that different ways of transferring the file are encoding (so that different ways of transferring the file are
unlikely to corrupt the file).} unlikely to corrupt the file).}
} ]
@; ---------------------------------------- @; ----------------------------------------
@ -46,7 +46,7 @@ backup file exists. The backup file is saved in the same directory as
the original file, and the backup file's name is generated from the the original file, and the backup file's name is generated from the
original file's name: original file's name:
@itemize{ @itemize[
@item{Under Unix and Mac OS X, a @filepath{~} is added to the end of @item{Under Unix and Mac OS X, a @filepath{~} is added to the end of
the file's name.} the file's name.}
@ -54,7 +54,7 @@ original file's name:
@item{Under Windows, the file's extension is replaced with @item{Under Windows, the file's extension is replaced with
@filepath{.bak}.} @filepath{.bak}.}
} ]
Every five minutes, DrScheme checks each open file. If any file is Every five minutes, DrScheme checks each open file. If any file is
modified and not saved, DrScheme saves the file to a special autosave modified and not saved, DrScheme saves the file to a special autosave
@ -64,7 +64,7 @@ without saving the file, the autosave file is removed. The autosave
file is saved in the same directory as the original file, and the file is saved in the same directory as the original file, and the
autosave file's name is generated from the original file's name: autosave file's name is generated from the original file's name:
@itemize{ @itemize[
@item{Under Unix and Mac OS X, a @filepath{#} is added to the start @item{Under Unix and Mac OS X, a @filepath{#} is added to the start
and end of the file's name, then a number is added after the and end of the file's name, then a number is added after the
@ -75,7 +75,7 @@ autosave file's name is generated from the original file's name:
@item{Under Windows, the file's extension is replaced with a number @item{Under Windows, the file's extension is replaced with a number
to make the autosave filename unique.} to make the autosave filename unique.}
} ]
If the definitions window is modified and there is no current file, If the definitions window is modified and there is no current file,
then an autosave file is written to the user's ``documents'' then an autosave file is written to the user's ``documents''

View File

@ -93,7 +93,7 @@ Clicking the @as-index{@onscreen{Check Syntax} button} annotates the
program text in the definitions window. It add the following program text in the definitions window. It add the following
annotations: annotations:
@itemize{ @itemize[
@item{@bold{Syntactic Highlighting:} Imported variables and locally @item{@bold{Syntactic Highlighting:} Imported variables and locally
defined variables are highlighted with color defined variables are highlighted with color
@ -143,7 +143,7 @@ annotations:
imported from a module shows the module that it is imported imported from a module shows the module that it is imported
from in a status line at the bottom of the frame.} from in a status line at the bottom of the frame.}
} ]
The @as-index{@onscreen{Run} button} evaluates the program in the The @as-index{@onscreen{Run} button} evaluates the program in the
@tech{definitions window} and resets the @tech{interactions window}. @tech{definitions window} and resets the @tech{interactions window}.
@ -165,7 +165,7 @@ evaluation immediately.
DrScheme supports multiple dialects of Scheme, as well as some DrScheme supports multiple dialects of Scheme, as well as some
non-Scheme languages. You specify a language in one of two ways: non-Scheme languages. You specify a language in one of two ways:
@itemize{ @itemize[
@item{Select the @menuitem["Language" "Choose Language..."] menu @item{Select the @menuitem["Language" "Choose Language..."] menu
item, and choose a language other than @drlang{Module}. After item, and choose a language other than @drlang{Module}. After
@ -179,7 +179,7 @@ non-Scheme languages. You specify a language in one of two ways:
specify a specific language as part of the program usually by specify a specific language as part of the program usually by
starting the definitions-window content with @hash-lang[].} starting the definitions-window content with @hash-lang[].}
} ]
The latter method, @drlang{Module} with @hash-lang[], is the recommend The latter method, @drlang{Module} with @hash-lang[], is the recommend
mode, and it is described further in @secref["module"]. mode, and it is described further in @secref["module"].
@ -224,7 +224,7 @@ match. DrScheme also rewrites open square brackets, usually to an
open parenthesis. There are some exceptions where opening square open parenthesis. There are some exceptions where opening square
brackets are not automatically changed to parentheses: brackets are not automatically changed to parentheses:
@itemize{ @itemize[
@item{If the square bracket is after @scheme[cond]-like keyword, @item{If the square bracket is after @scheme[cond]-like keyword,
potentially skipping some of the sub-expressions in the potentially skipping some of the sub-expressions in the
@ -246,7 +246,7 @@ brackets are not automatically changed to parentheses:
@item{If the square bracket is in the middle of string, @item{If the square bracket is in the middle of string,
comment, character, or symbol.} comment, character, or symbol.}
} ]
The upshot of DrScheme's help is that you can always use the The upshot of DrScheme's help is that you can always use the
(presumably unshifted) square brackets on your keyboard to type (presumably unshifted) square brackets on your keyboard to type
@ -579,7 +579,7 @@ of a green triangle over this expression's left parenthesis.
While execution is paused, several buttons are available: While execution is paused, several buttons are available:
@itemize{ @itemize[
@item{The @as-index{@onscreen{Go} button} is enabled @item{The @as-index{@onscreen{Go} button} is enabled
whenever the program is paused. It causes the program to resume whenever the program is paused. It causes the program to resume
@ -603,7 +603,7 @@ the @onscreen{Over} button, it sets a one-time breakpoint and
continues execution. In this case, the program stops upon returning continues execution. In this case, the program stops upon returning
to the context or raising an unhandled exception.} to the context or raising an unhandled exception.}
} ]
If the program is running (not paused), then only the @as-index{Pause} If the program is running (not paused), then only the @as-index{Pause}
button will be enabled. Clicking it will interrupt execution and button will be enabled. Clicking it will interrupt execution and
@ -620,7 +620,7 @@ button, stopped execution cannot be continued.
When execution is paused, the definitions window supports several When execution is paused, the definitions window supports several
additional actions: additional actions:
@itemize{ @itemize[
@item{Hovering the mouse cursor over a parenthesis may reveal a @item{Hovering the mouse cursor over a parenthesis may reveal a
pink circle. If so, right-clicking or control-clicking (Mac OS X) pink circle. If so, right-clicking or control-clicking (Mac OS X)
@ -665,7 +665,7 @@ options to @onscreen{Print value of <var> to console} or
in the interactions window; the latter opens a text box in which to in the interactions window; the latter opens a text box in which to
enter a new value for the variable.} enter a new value for the variable.}
} ]
@subsection{Stack View Pane} @subsection{Stack View Pane}
@ -734,7 +734,7 @@ engine, while other languages support only one type or engine.
Each type has advantages and disadvantages: Each type has advantages and disadvantages:
@itemize{ @itemize[
@item{A @deftech{launcher executable} uses the latest version of @item{A @deftech{launcher executable} uses the latest version of
your program source file when it starts. It also accesses library your program source file when it starts. It also accesses library
@ -756,7 +756,7 @@ Each type has advantages and disadvantages:
unpacked and run on any machine with the same operating system as unpacked and run on any machine with the same operating system as
yours.} yours.}
} ]
In general, DrScheme's @drlang{Module} language gives you the most In general, DrScheme's @drlang{Module} language gives you the most
options. Most other languages only allow one type of executable. The options. Most other languages only allow one type of executable. The

View File

@ -30,7 +30,7 @@ exactly one module.
DrScheme supports several historically useful variants of Scheme DrScheme supports several historically useful variants of Scheme
without a @hash-lang[] prefix: without a @hash-lang[] prefix:
@itemize{ @itemize[
@item{The @as-index{@drlang{R5RS} language} contains those @item{The @as-index{@drlang{R5RS} language} contains those
primitives and syntax defined in the R@superscript{5}RS Scheme primitives and syntax defined in the R@superscript{5}RS Scheme
@ -53,7 +53,7 @@ without a @hash-lang[] prefix:
bindings as @schememodname[swindle], and evaluates the program like bindings as @schememodname[swindle], and evaluates the program like
@scheme[load].} @scheme[load].}
} ]
@; ---------------------------------------- @; ----------------------------------------
@ -61,7 +61,7 @@ without a @hash-lang[] prefix:
Five of DrScheme's languages are specifically designed for teaching: Five of DrScheme's languages are specifically designed for teaching:
@itemize{ @itemize[
@item{The @as-index{@drlang{Beginning Student} language} is a small @item{The @as-index{@drlang{Beginning Student} language} is a small
version of Scheme that is tailored for beginning computer version of Scheme that is tailored for beginning computer
@ -81,12 +81,12 @@ Five of DrScheme's languages are specifically designed for teaching:
@item{The @as-index{@drlang{Advanced Student} language} adds mutable @item{The @as-index{@drlang{Advanced Student} language} adds mutable
state.} state.}
} ]
The teaching languages are different from conventional Scheme in a number The teaching languages are different from conventional Scheme in a number
of ways: of ways:
@itemize{ @itemize[
@item{@defterm{Case-sensitive identifiers and symbols} --- In a @item{@defterm{Case-sensitive identifiers and symbols} --- In a
case-sensitive language, the variable names @scheme[x] and case-sensitive language, the variable names @scheme[x] and
@ -232,13 +232,13 @@ of ways:
languages, function definitions are not allowed in the languages, function definitions are not allowed in the
interactions window.} interactions window.}
} ]
The teaching languages also deviate from traditional Scheme in The teaching languages also deviate from traditional Scheme in
printing values. Different printing formats can be selected for any printing values. Different printing formats can be selected for any
language through the detail section of language-selection dialog. language through the detail section of language-selection dialog.
@itemize{ @itemize[
@item{@defterm{Constructor-style output} --- See @item{@defterm{Constructor-style output} --- See
@secref["output-syntax"].} @secref["output-syntax"].}
@ -281,7 +281,7 @@ language through the detail section of language-selection dialog.
] ]
} }
} ]
A program in the teaching languages should be tested using the check forms --- A program in the teaching languages should be tested using the check forms ---
@scheme[(check-expect value value)], @scheme[(check-within value value value)], or @scheme[(check-expect value value)], @scheme[(check-within value value value)], or
@ -300,7 +300,7 @@ A program in the teaching languages should be tested using the check forms ---
The ProfessorJ languages are Java based languages designed for teaching and The ProfessorJ languages are Java based languages designed for teaching and
experimentation. There are four teaching based languages: experimentation. There are four teaching based languages:
@itemize{ @itemize[
@item{The @as-index{@drlang{ProfessorJ Beginner} language} is a small @item{The @as-index{@drlang{ProfessorJ Beginner} language} is a small
subset of Java, designed for novice computer science students. subset of Java, designed for novice computer science students.
@ -318,18 +318,18 @@ The ProfessorJ languages are Java based languages designed for teaching and
@item{The @as-index{@drlang{ProfessorJ Advanced} language} adds arrays, loop @item{The @as-index{@drlang{ProfessorJ Advanced} language} adds arrays, loop
constructs, and package specifications.} constructs, and package specifications.}
} ]
The remaining two languages support language extensions and experimentations: The remaining two languages support language extensions and experimentations:
@itemize{ @itemize[
@item{The @as-index{@drlang{ProfessorJ Full} language} supports most of Java 1.1 @item{The @as-index{@drlang{ProfessorJ Full} language} supports most of Java 1.1
features, as well as a set of constructs designed for the development of features, as well as a set of constructs designed for the development of
unit tests} unit tests}
@item{The @as-index{@drlang{ProfessorJ Java + dynamic} language} extends the @item{The @as-index{@drlang{ProfessorJ Java + dynamic} language} extends the
ProfessorJ Full language with a dynamic type and the ability to import Scheme ProfessorJ Full language with a dynamic type and the ability to import Scheme
libraries directly, for developing programs that use both languages.} libraries directly, for developing programs that use both languages.}
} ]
Value printing can be either @defterm{Class} or @defterm{Class + Field}, selectable Value printing can be either @defterm{Class} or @defterm{Class + Field}, selectable
in the show details section of the language selection window. The Class printing style in the show details section of the language selection window. The Class printing style

View File

@ -13,7 +13,7 @@
@section{@onscreen{File}} @section{@onscreen{File}}
@itemize{ @itemize[
@item{@defmenuitem{New} Creates a new DrScheme window.} @item{@defmenuitem{New} Creates a new DrScheme window.}
@ -40,7 +40,7 @@
window. Subsequent saves write to the newly-selected file.} window. Subsequent saves write to the newly-selected file.}
@item{@defmenuitem{Save Other} Contains these sub-items @item{@defmenuitem{Save Other} Contains these sub-items
@itemize{ @itemize[
@item{@defmenuitem{Save Definitions As Text...} Like @onscreen{Save @item{@defmenuitem{Save Definitions As Text...} Like @onscreen{Save
Definitions As...}, but the file is saved in plain-text format (see Definitions As...}, but the file is saved in plain-text format (see
@ -60,7 +60,7 @@
@secref["drscheme-file-formats"]). Subsequent saves are write in @secref["drscheme-file-formats"]). Subsequent saves are write in
plain-text format.} plain-text format.}
}} ]}
@item{@defmenuitem{Log Definitions and Interactions...} Starts a @item{@defmenuitem{Log Definitions and Interactions...} Starts a
running of log of the text in the interactions and definitions running of log of the text in the interactions and definitions
@ -87,7 +87,7 @@
@item{{@onscreen{Quit} or @onscreen{Exit}} Exits DrScheme. (Under Mac @item{{@onscreen{Quit} or @onscreen{Exit}} Exits DrScheme. (Under Mac
OS X, this menu item is in the Apple menu.)} OS X, this menu item is in the Apple menu.)}
} ]
@; ---------------------------------------- @; ----------------------------------------
@ -97,7 +97,7 @@ All @onscreen{Edit} menu items operate on either the definitions or
interactions window, depending on the location of the selection or interactions window, depending on the location of the selection or
blinking caret. Each window maintains its own Undo and Redo history. blinking caret. Each window maintains its own Undo and Redo history.
@itemize{ @itemize[
@item{@defmenuitem{Undo} Reverses an editing action. Each window @item{@defmenuitem{Undo} Reverses an editing action. Each window
maintains a history of actions, so multiple @onscreen{Undo} maintains a history of actions, so multiple @onscreen{Undo}
@ -126,11 +126,9 @@ blinking caret. Each window maintains its own Undo and Redo history.
@item{@defmenuitem{Find...} Opens an interactive search @item{@defmenuitem{Find...} Opens an interactive search
window at the bottom of the frame and moves the insertion window at the bottom of the frame and moves the insertion
point to the search string editor (or out of it, if the point to the search string editor (or out of it, if the
insertion point is already there. insertion point is already there).
See also @secref["Searching"]. See also @secref["Searching"].}
}
@item{@defmenuitem{Find Again} Finds the next occurrence of the text @item{@defmenuitem{Find Again} Finds the next occurrence of the text
in the search window.} in the search window.}
@ -153,7 +151,7 @@ the search string with the replace string.}
case-sensitive and case-insensitive search.} case-sensitive and case-insensitive search.}
@item{@defmenuitem{Keybindings} @item{@defmenuitem{Keybindings}
@itemize{ @itemize[
@item{@defmenuitem{Show Active Keybindings} Shows all of the @item{@defmenuitem{Show Active Keybindings} Shows all of the
keybindings available in the current window.} keybindings available in the current window.}
@ -163,14 +161,14 @@ case-sensitive and case-insensitive search.}
Scheme-definitions of keybindings. See @secref["defining-shortcuts"] Scheme-definitions of keybindings. See @secref["defining-shortcuts"]
for more information.} for more information.}
}} ]}
@item{@defmenuitem{Complete Word} Completes the word at the @item{@defmenuitem{Complete Word} Completes the word at the
insertion point, using the manuals as a source of completions.} insertion point, using the manuals as a source of completions.}
@item{@defmenuitem{Preferences...} Opens the preferences dialog. See @item{@defmenuitem{Preferences...} Opens the preferences dialog. See
@secref["prefs-explanation"]. (Under Mac OS X, this menu item is in @secref["prefs-explanation"]. (Under Mac OS X, this menu item is in
the Apple menu.)} } the Apple menu.)} ]
@; ---------------------------------------- @; ----------------------------------------
@ -179,7 +177,7 @@ insertion point, using the manuals as a source of completions.}
One each of the following show/hide pairs of menu items One each of the following show/hide pairs of menu items
appears at any time. appears at any time.
@itemize{ @itemize[
@item{@defmenuitem{Show Definitions} Shows the definitions window.} @item{@defmenuitem{Show Definitions} Shows the definitions window.}
@ -202,11 +200,11 @@ appears at any time.
@item{@defmenuitem{Hide Module Browser} Hides the module browser.} @item{@defmenuitem{Hide Module Browser} Hides the module browser.}
@item{@defmenuitem{Toolbar} @item{@defmenuitem{Toolbar}
@itemize{ @itemize[
@item{@defmenuitem{Toolbar on Left} Moves the tool bar (defaultly on the top of DrScheme's window) to the left-hand side, organized vertically.} @item{@defmenuitem{Toolbar on Left} Moves the tool bar (defaultly on the top of DrScheme's window) to the left-hand side, organized vertically.}
@item{@defmenuitem{Toolbar on Top} Moves the toolbar to the top of the DrScheme window.} @item{@defmenuitem{Toolbar on Top} Moves the toolbar to the top of the DrScheme window.}
@item{@defmenuitem{Toolbar on Right} Moves the tool bar to the right-hand side, organized vertically.} @item{@defmenuitem{Toolbar on Right} Moves the tool bar to the right-hand side, organized vertically.}
@item{@defmenuitem{Toolbar Hidden} Hides the toolbar entirely.}}} @item{@defmenuitem{Toolbar Hidden} Hides the toolbar entirely.}]}
@item{@defmenuitem{Show Log} Shows the current log messages.} @item{@defmenuitem{Show Log} Shows the current log messages.}
@item{@defmenuitem{Hide Log} Hides the current log messages.} @item{@defmenuitem{Hide Log} Hides the current log messages.}
@ -241,7 +239,7 @@ appears at any time.
menu item becomes enabled, allowing you to collapse the split menu item becomes enabled, allowing you to collapse the split
window.} window.}
} ]
Note: whenever a program is run, the interactions window is made Note: whenever a program is run, the interactions window is made
visible if it is hidden. visible if it is hidden.
@ -250,7 +248,7 @@ Note: whenever a program is run, the interactions window is made
@section{@onscreen{Language}} @section{@onscreen{Language}}
@itemize{ @itemize[
@item{@defmenuitem{Choose Language...} Opens a dialog for selecting @item{@defmenuitem{Choose Language...} Opens a dialog for selecting
the current evaluation language. Click @onscreen{Run} to make the the current evaluation language. Click @onscreen{Run} to make the
@ -269,7 +267,7 @@ Note: whenever a program is run, the interactions window is made
teachpacks. Click @onscreen{Run} to clear the teachpack from the teachpacks. Click @onscreen{Run} to clear the teachpack from the
interactions window.} interactions window.}
} ]
In addition to the above items, a menu item for each teachpack that In addition to the above items, a menu item for each teachpack that
clears only the corresponding teachpack. clears only the corresponding teachpack.
@ -278,7 +276,7 @@ clears only the corresponding teachpack.
@section[#:tag "menu:scheme"]{@onscreen{Scheme}} @section[#:tag "menu:scheme"]{@onscreen{Scheme}}
@itemize{ @itemize[
@item{@defmenuitem{Run} Resets the interactions window and runs the @item{@defmenuitem{Run} Resets the interactions window and runs the
program in the definitions window.} program in the definitions window.}
@ -348,11 +346,11 @@ background that signals the source location of an error.}
the @onscreen{Disable Tests} menu item. the @onscreen{Disable Tests} menu item.
} }
} ]
@section{@onscreen{Insert}} @section{@onscreen{Insert}}
@itemize{ @itemize[
@item{@defmenuitem{Insert Comment Box} Inserts a box that is ignored @item{@defmenuitem{Insert Comment Box} Inserts a box that is ignored
by DrScheme; use it to write comments for people who read your by DrScheme; use it to write comments for people who read your
@ -399,13 +397,13 @@ background that signals the source location of an error.}
Slideshow picture. Inside the pict box, insert and arrange Scheme Slideshow picture. Inside the pict box, insert and arrange Scheme
boxes that produce picture values.} boxes that produce picture values.}
} ]
@; ---------------------------------------- @; ----------------------------------------
@section{@onscreen{Windows}} @section{@onscreen{Windows}}
@itemize{ @itemize[
@item{@defmenuitem{Bring Frame to Front...} Opens a window that lists @item{@defmenuitem{Bring Frame to Front...} Opens a window that lists
all of the opened DrScheme frames. Selecting one of them brings the all of the opened DrScheme frames. Selecting one of them brings the
@ -414,7 +412,7 @@ background that signals the source location of an error.}
@item{@defmenuitem{Most Recent Window} Toggles between the currently @item{@defmenuitem{Most Recent Window} Toggles between the currently
focused window and the one that most recently had the focus.} focused window and the one that most recently had the focus.}
} ]
Additionally, after the above menu items, this menu contains Additionally, after the above menu items, this menu contains
an entry for each window in DrScheme. Selecting a menu item an entry for each window in DrScheme. Selecting a menu item
@ -424,7 +422,7 @@ brings the corresponding window to the front.
@section{@onscreen{Help}} @section{@onscreen{Help}}
@itemize{ @itemize[
@item{@defmenuitem{Help Desk} Opens the Help Desk. This is the clearing @item{@defmenuitem{Help Desk} Opens the Help Desk. This is the clearing
house for all documentation about DrScheme and its language.} house for all documentation about DrScheme and its language.}
@ -441,5 +439,5 @@ brings the corresponding window to the front.
current language is not English. Additional menu items switch current language is not English. Additional menu items switch
DrScheme to other languages.} DrScheme to other languages.}
} ]

View File

@ -30,7 +30,7 @@ The preferences dialog consists of several panels.
The @onscreen{Editing} panel consists of several sub-panels: The @onscreen{Editing} panel consists of several sub-panels:
@itemize{ @itemize[
@item{@onscreen{Indenting} @item{@onscreen{Indenting}
@ -40,7 +40,7 @@ The preferences dialog consists of several panels.
@item{@onscreen{Square bracket} @item{@onscreen{Square bracket}
This panel controls which keywords DrScheme uses to determine This panel controls which keywords DrScheme uses to determine
when to rewrite @litchar{[} to @litchar{(}. For when to rewrite @litchar["["] to @litchar["("]. For
@scheme[cond]-like keywords, the number in parenthesis indicates @scheme[cond]-like keywords, the number in parenthesis indicates
how many sub-expressions are skipped before square brackets are how many sub-expressions are skipped before square brackets are
started. started.
@ -50,7 +50,7 @@ The preferences dialog consists of several panels.
@item{@onscreen{General} @item{@onscreen{General}
@itemize{ @itemize[
@item{@PrefItem{Number of recent items} --- controls the @item{@PrefItem{Number of recent items} --- controls the
length of the @onscreen{Open Recent} menu (in the @onscreen{File} length of the @onscreen{Open Recent} menu (in the @onscreen{File}
@ -128,11 +128,11 @@ The preferences dialog consists of several panels.
that the @hash-lang[] line is the first line in the file. that the @hash-lang[] line is the first line in the file.
} }
}} ]}
@item{@onscreen{Scheme} @item{@onscreen{Scheme}
@itemize{ @itemize[
@item{@PrefItem{Highlight between matching parens} --- If checked, the @item{@PrefItem{Highlight between matching parens} --- If checked, the
editor marks the region between matching parenthesis with a gray editor marks the region between matching parenthesis with a gray
@ -140,23 +140,23 @@ The preferences dialog consists of several panels.
the blinking caret is next to a parenthesis.} the blinking caret is next to a parenthesis.}
@item{@PrefItem{Correct parens} --- If checked, the editor @item{@PrefItem{Correct parens} --- If checked, the editor
automatically converts a typed @litchar{)} to @litchar{]} to automatically converts a typed @litchar[")"] to @litchar["]"] to
match @litchar{[}, or it converts a typed @litchar{]} to match @litchar["["], or it converts a typed @litchar["]"] to
@litchar{)} to match @litchar{(}. Also, the editor changes @litchar[")"] to match @litchar["("]. Also, the editor changes
typed @litchar{[} to match the context (as explained in typed @litchar["["] to match the context (as explained in
@secref["editor"]).} @secref["editor"]).}
@item{@PrefItem{Flash paren match} --- If checked, typing a closing @item{@PrefItem{Flash paren match} --- If checked, typing a closing
parenthesis, square bracket, or quotation mark flashes the parenthesis, square bracket, or quotation mark flashes the
matching open parenthesis/bracket/quote.} matching open parenthesis/bracket/quote.}
}} ]}
} ]
@section{@onscreen{Warnings}} @section{@onscreen{Warnings}}
@itemize{ @itemize[
@item{@PrefItem{Ask before changing save format} --- If checked, @item{@PrefItem{Ask before changing save format} --- If checked,
DrScheme consults the user before saving a file in non-text format DrScheme consults the user before saving a file in non-text format
@ -181,7 +181,7 @@ The preferences dialog consists of several panels.
checked, DrScheme periodically polls a server to determine checked, DrScheme periodically polls a server to determine
whether a newer version of DrScheme is available.} whether a newer version of DrScheme is available.}
} ]
@section{@onscreen{Profiling}} @section{@onscreen{Profiling}}

View File

@ -226,7 +226,7 @@ memory. Although not reflected above, the four arguments can appear in
any order since they are all different types of Scheme objects; a size any order since they are all different types of Scheme objects; a size
specification is required at minimum: specification is required at minimum:
@itemize{ @itemize[
@item{If a C type @scheme[bytes-or-type] is given, its size is used @item{If a C type @scheme[bytes-or-type] is given, its size is used
to the block allocation size.} to the block allocation size.}
@ -257,7 +257,7 @@ specification is required at minimum:
@indexed-scheme['failok] flag is given, then @indexed-scheme['failok] flag is given, then
@cpp{scheme_malloc_fail_ok} is used to wrap the call.} @cpp{scheme_malloc_fail_ok} is used to wrap the call.}
} ]
If no mode is specified, then @scheme['nonatomic] allocation is used If no mode is specified, then @scheme['nonatomic] allocation is used
when the type is any pointer-based type, and @scheme['atomic] when the type is any pointer-based type, and @scheme['atomic]

View File

@ -482,7 +482,7 @@ of known keys. Each key interacts with generated wrapper functions in
a different way, which affects how its corresponding argument is a different way, which affects how its corresponding argument is
treated: treated:
@itemize{ @itemize[
@item{@scheme[type:] specifies the foreign type that should be used, if it is @item{@scheme[type:] specifies the foreign type that should be used, if it is
@scheme[#f] then this argument does not participate in the foreign call.} @scheme[#f] then this argument does not participate in the foreign call.}
@ -506,7 +506,7 @@ treated:
argument's value.} argument's value.}
@item{@scheme[post:] a similar post-foreign code chunk.} @item{@scheme[post:] a similar post-foreign code chunk.}
} ]
The @scheme[pre:] and @scheme[post:] bindings can be of the form The @scheme[pre:] and @scheme[post:] bindings can be of the form
@scheme[(_id => _expr)] to use the existing value. Note that if the @scheme[(_id => _expr)] to use the existing value. Note that if the
@ -551,7 +551,7 @@ Creates a C pointer type, where @scheme[mode] indicates input or
output pointers (or both). The @scheme[mode] can be one of the output pointers (or both). The @scheme[mode] can be one of the
following: following:
@itemize{ @itemize[
@item{@scheme[i] --- indicates an @italic{input} pointer argument: @item{@scheme[i] --- indicates an @italic{input} pointer argument:
the wrapper arranges for the function call to receive a value that the wrapper arranges for the function call to receive a value that
@ -576,7 +576,7 @@ following:
function, and a copy of the return value is made too---which is function, and a copy of the return value is made too---which is
inefficient, but ensures that structs are not modified by C code.)} inefficient, but ensures that structs are not modified by C code.)}
} ]
For example, the @scheme[_ptr] type can be used in output mode to create a For example, the @scheme[_ptr] type can be used in output mode to create a
foreign function wrapper that returns more than a single argument. The foreign function wrapper that returns more than a single argument. The
@ -684,7 +684,7 @@ must start with @litchar{_}.
The resulting bindings are as follows: The resulting bindings are as follows:
@itemize{ @itemize[
@item{@scheme[_id] : the new C type for this struct.} @item{@scheme[_id] : the new C type for this struct.}
@ -705,7 +705,7 @@ The resulting bindings are as follows:
@item{@schemeidfont{set-}@schemevarfont{id}@schemeidfont{-}@scheme[field-id]@schemeidfont{!} @item{@schemeidfont{set-}@schemevarfont{id}@schemeidfont{-}@scheme[field-id]@schemeidfont{!}
: a mutator function for each @scheme[field-id].} : a mutator function for each @scheme[field-id].}
} ]
Objects of the new type are actually C pointers, with a type tag that Objects of the new type are actually C pointers, with a type tag that
is a list that contains the string form of @schemevarfont{id}. Since is a list that contains the string form of @schemevarfont{id}. Since

View File

@ -16,7 +16,7 @@
and should return the style-name that the token should be colored. 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: get-token takes an input port and returns the next token as 5 values:
@itemize{ @itemize[
@item{ @item{
An unused value. This value is intended to represent the textual An unused value. This value is intended to represent the textual
component of the token and may be used as such in the future.} component of the token and may be used as such in the future.}
@ -34,12 +34,12 @@
@item{ @item{
The starting position of the token.} The starting position of the token.}
@item{ @item{
The ending position of the token.}} The ending position of the token.}]
get-token will usually be implemented with a lexer using the get-token will usually be implemented with a lexer using the
@scheme[parser-tools/lex] library. @scheme[parser-tools/lex] library.
get-token must obey the following invariants: get-token must obey the following invariants:
@itemize{ @itemize[
@item{ @item{
Every position in the buffer must be accounted for in exactly one Every position in the buffer must be accounted for in exactly one
token.} token.}
@ -58,7 +58,7 @@
@verbatim{" 1 2 3"} @verbatim{" 1 2 3"}
would result in a single string token modifying previous tokens. To would result in a single string token modifying previous tokens. To
handle these situations, get-token must treat the first line as a 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 @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 value returned by get-token is compared to this list to see how the

View File

@ -223,7 +223,7 @@ framework)) @(require (for-label scheme/gui)) @(require
If that returns @scheme[#t], If that returns @scheme[#t],
it checks for one of the these three conditions: it checks for one of the these three conditions:
@itemize{ @itemize[
@item{ @item{
@scheme[exit:exiting?] @scheme[exit:exiting?]
returns @scheme[#t]} returns @scheme[#t]}
@ -233,7 +233,7 @@ framework)) @(require (for-label scheme/gui)) @(require
@scheme[group:get-the-frame-group], or} @scheme[group:get-the-frame-group], or}
@item{the procedure @item{the procedure
@scheme[exit:user-oks-exit] @scheme[exit:user-oks-exit]
returns @scheme[#t].}} returns @scheme[#t].}]
If any of those conditions hold, the If any of those conditions hold, the
method returns @scheme[#t]. method returns @scheme[#t].
} }

View File

@ -12,10 +12,10 @@ The framework provides a number of mixins, classes and
functions designed to help you build a complete application functions designed to help you build a complete application
program on top of the @scheme[scheme/gui] library. program on top of the @scheme[scheme/gui] library.
@itemize{ @itemize[
@item{@bold{Entire Framework} @item{@bold{Entire Framework}
@itemize{ @itemize[
@item{@scheme[(require #, @schememodname[framework])] @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. @scheme[framework^]. It imports the @scheme[mred^] signature.
} }
}} ]}
@item{ @item{
@bold{Test Suite Engine} @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 functionality in it has moved into the framework proper, in
the @secref["editor-snip"] section. the @secref["editor-snip"] section.
} }
} ]
@bold{Thanks} @bold{Thanks}

View File

@ -7,7 +7,7 @@ An @scheme[area-container<%>] is a container @scheme[area<%>].
All @scheme[area-container<%>] classes accept the following named All @scheme[area-container<%>] classes accept the following named
instantiation arguments: instantiation arguments:
@itemize{ @itemize[
@item{@indexed-scheme[border] --- default is @scheme[0]; passed to @item{@indexed-scheme[border] --- default is @scheme[0]; passed to
@method[area-container<%> border]} @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 @scheme['(center top)] for @scheme[vertical-panel%]; the list
elements are passed to elements are passed to
@method[area-container<%> set-alignment]} @method[area-container<%> set-alignment]}
} ]

View File

@ -10,7 +10,7 @@ An @scheme[area<%>] object is either a window or a windowless
All @scheme[area<%>] classes accept the following named instantiation All @scheme[area<%>] classes accept the following named instantiation
arguments: arguments:
@itemize{ @itemize[
@item{@indexed-scheme[min-width] --- default is the initial graphical minimum width; passed to @item{@indexed-scheme[min-width] --- default is the initial graphical minimum width; passed to
@method[area<%> min-width]} @method[area<%> min-width]}
@ -20,7 +20,7 @@ All @scheme[area<%>] classes accept the following named instantiation
@method[area<%> stretchable-width]} @method[area<%> stretchable-width]}
@item{@indexed-scheme[stretchable-height] --- default is class-specific; passed to @item{@indexed-scheme[stretchable-height] --- default is class-specific; passed to
@method[area<%> stretchable-height]} @method[area<%> stretchable-height]}
} ]

View File

@ -140,7 +140,7 @@ Loads a bitmap from a file. If the bitmap is in use by a
The @scheme[kind] argument specifies the file's format: The @scheme[kind] argument specifies the file's format:
@itemize{ @itemize[
@item{@scheme['unknown] --- examine the file to determine its format} @item{@scheme['unknown] --- examine the file to determine its format}
@item{@scheme['unknown/mask] --- like @scheme['unknown], but see @method[bitmap% get-loaded-mask]} @item{@scheme['unknown/mask] --- like @scheme['unknown], but see @method[bitmap% get-loaded-mask]}
@item{@scheme['gif] --- load a @as-index{GIF} bitmap file (X, Windows, Mac OS X)} @item{@scheme['gif] --- load a @as-index{GIF} bitmap file (X, Windows, Mac OS X)}
@ -152,7 +152,7 @@ The @scheme[kind] argument specifies the file's format:
@item{@scheme['xpm] --- load an @as-index{XPM} bitmap file (X, Windows, Mac OS X)} @item{@scheme['xpm] --- load an @as-index{XPM} bitmap file (X, Windows, Mac OS X)}
@item{@scheme['bmp] --- load a Windows bitmap file (X, Windows, Mac OS X)} @item{@scheme['bmp] --- load a Windows bitmap file (X, Windows, Mac OS X)}
@item{@scheme['pict] --- load a @as-index{PICT} bitmap file (Mac OS X)} @item{@scheme['pict] --- load a @as-index{PICT} bitmap file (Mac OS X)}
} ]
An XBM image is always loaded as a monochrome bitmap. A 1-bit An XBM image is always loaded as a monochrome bitmap. A 1-bit
grayscale PNG without a mask or alpha channel is also loaded as a grayscale PNG without a mask or alpha channel is also loaded as a
@ -198,7 +198,7 @@ Saves a bitmap in the named file.
The @scheme[kind] argument determined the type of file that is created, The @scheme[kind] argument determined the type of file that is created,
one of: one of:
@itemize{ @itemize[
@item{@scheme['png] --- save a @as-index{PNG} file (X, Windows, Mac OS X)} @item{@scheme['png] --- save a @as-index{PNG} file (X, Windows, Mac OS X)}
@ -210,7 +210,7 @@ The @scheme[kind] argument determined the type of file that is created,
@item{@scheme['bmp] --- save a Windows bitmap file (Windows)} @item{@scheme['bmp] --- save a Windows bitmap file (Windows)}
} ]
The @scheme[quality] argument is used only for saving as @scheme['jpeg], in The @scheme[quality] argument is used only for saving as @scheme['jpeg], in
which case it specifies the trade-off between image precision (high which case it specifies the trade-off between image precision (high

View File

@ -142,10 +142,10 @@ information@|details|, even if the editor currently has delayed refreshing (see
(make-splice (make-splice
(list (list
@p{Be sure to use the following methods to start/end drawing:} @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<%> start-page]}
@item{@method[dc<%> end-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.}))) @p{Attempts to use a drawing method outside of an active page raises an exception.})))
(define reference-doc '(lib "scribblings/reference/reference.scrbl")) (define reference-doc '(lib "scribblings/reference/reference.scrbl"))

View File

@ -16,7 +16,7 @@ In addition to its color and style, a brush can have a stipple bitmap.
A brush's style is one of the following: A brush's style is one of the following:
@itemize{ @itemize[
@item{@indexed-scheme['transparent] --- Draws with no effect (on the @item{@indexed-scheme['transparent] --- Draws with no effect (on the
interior of the drawn shape).} interior of the drawn shape).}
@ -40,7 +40,7 @@ A brush's style is one of the following:
values. The @scheme['xor] mapping is unspecified for arbitrary values. The @scheme['xor] mapping is unspecified for arbitrary
color combinations, but the mapping provides two guarantees: color combinations, but the mapping provides two guarantees:
@itemize{ @itemize[
@item{Black-and-white drawing to a color or monochrome @item{Black-and-white drawing to a color or monochrome
destination always works as expected: black xor white = black, destination always works as expected: black xor white = black,
@ -50,7 +50,7 @@ A brush's style is one of the following:
@item{Performing the same drawing operation twice in a row with @item{Performing the same drawing operation twice in a row with
@scheme['xor] is equivalent to a no-op.} @scheme['xor] is equivalent to a no-op.}
}} ]}
@item{@indexed-scheme['hilite] --- In unsmoothed mode, existing @item{@indexed-scheme['hilite] --- In unsmoothed mode, existing
destination pixels are ``highlighted'' in a platform-specific destination pixels are ``highlighted'' in a platform-specific
@ -84,21 +84,21 @@ A brush's style is one of the following:
@item{The following modes correspond to built-in stipples drawn in @item{The following modes correspond to built-in stipples drawn in
@scheme['solid] mode: @scheme['solid] mode:
@itemize{ @itemize[
@item{@indexed-scheme['bdiagonal-hatch] --- diagonal lines, top-left to bottom-right} @item{@indexed-scheme['bdiagonal-hatch] --- diagonal lines, top-left to bottom-right}
@item{@indexed-scheme['crossdiag-hatch] --- crossed diagonal lines} @item{@indexed-scheme['crossdiag-hatch] --- crossed diagonal lines}
@item{@indexed-scheme['fdiagonal-hatch] --- diagonal lines, top-right to bottom-left} @item{@indexed-scheme['fdiagonal-hatch] --- diagonal lines, top-right to bottom-left}
@item{@indexed-scheme['cross-hatch] --- crossed horizontal and vertical lines} @item{@indexed-scheme['cross-hatch] --- crossed horizontal and vertical lines}
@item{@indexed-scheme['horizontal-hatch] --- horizontal lines} @item{@indexed-scheme['horizontal-hatch] --- horizontal lines}
@item{@indexed-scheme['vertical-hatch] --- vertical lines} @item{@indexed-scheme['vertical-hatch] --- vertical lines}
} ]
However, when a specific stipple is installed into the brush However, when a specific stipple is installed into the brush
for when drawing with a smoothing mode into a non-PostScript for when drawing with a smoothing mode into a non-PostScript
context, the above modes are ignored and @scheme['solid] is context, the above modes are ignored and @scheme['solid] is
used, instead.} used, instead.}
} ]
@index['("drawing" "outlines")]{To} draw outline shapes (such as @index['("drawing" "outlines")]{To} draw outline shapes (such as
unfilled boxes and ellipses), use the @scheme['transparent] brush unfilled boxes and ellipses), use the @scheme['transparent] brush

View File

@ -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: The @scheme[style] argument indicates one or more of the following styles:
@itemize{ @itemize[
@item{@scheme['border] --- gives the canvas a thin border} @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] later by calling @scheme[parent]'s @method[area-container<%> add-child]
method} method}
} ]
The @scheme['hscroll] and @scheme['vscroll] styles create a The @scheme['hscroll] and @scheme['vscroll] styles create a
canvas with an initially inactive scrollbar. The scrollbars are canvas with an initially inactive scrollbar. The scrollbars are

View File

@ -10,7 +10,7 @@ To draw onto a canvas, get its device context (see
@method[canvas<%> get-dc]). @method[canvas<%> get-dc]).
The @scheme[canvas<%>] interface is implemented by two classes: The @scheme[canvas<%>] interface is implemented by two classes:
@itemize{ @itemize[
@item{@scheme[canvas%] --- a canvas for arbitrary drawing and @item{@scheme[canvas%] --- a canvas for arbitrary drawing and
event handling} event handling}
@ -18,7 +18,7 @@ The @scheme[canvas<%>] interface is implemented by two classes:
@item{@scheme[editor-canvas%] --- a canvas for displaying @item{@scheme[editor-canvas%] --- a canvas for displaying
@scheme[editor<%>] objects} @scheme[editor<%>] objects}
} ]
@defmethod[(get-canvas-background) @defmethod[(get-canvas-background)

View File

@ -14,7 +14,7 @@ A @scheme[control-event%] object contains information about a
[time-stamp (and/c exact? integer?) 0])]{ [time-stamp (and/c exact? integer?) 0])]{
The @scheme[event-type] argument is one of the following: The @scheme[event-type] argument is one of the following:
@itemize{ @itemize[
@item{@scheme['button] --- for @scheme[button%] clicks} @item{@scheme['button] --- for @scheme[button%] clicks}
@item{@scheme['check-box] --- for @scheme[check-box%] toggles} @item{@scheme['check-box] --- for @scheme[check-box%] toggles}
@item{@scheme['choice] --- for @scheme[choice%] item selections} @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] --- for @scheme[popup-menu%] callbacks (item selected)}
@item{@scheme['menu-popdown-none] --- for @scheme[popup-menu%] callbacks (no 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} @item{@scheme['tab-panel] --- for @scheme[tab-panel%] tab changes}
} ]
This value is extracted out of a @scheme[control-event%] object with This value is extracted out of a @scheme[control-event%] object with
the the

View File

@ -5,7 +5,7 @@
The @scheme[control<%>] interface is implemented by the built-in The @scheme[control<%>] interface is implemented by the built-in
control window classes: control window classes:
@itemize{ @itemize[
@item{@scheme[message%]} @item{@scheme[message%]}
@item{@scheme[button%]} @item{@scheme[button%]}
@item{@scheme[check-box%]} @item{@scheme[check-box%]}
@ -15,7 +15,7 @@ The @scheme[control<%>] interface is implemented by the built-in
@item{@scheme[radio-box%]} @item{@scheme[radio-box%]}
@item{@scheme[choice%]} @item{@scheme[choice%]}
@item{@scheme[list-box%]} @item{@scheme[list-box%]}
} ]

View File

@ -30,7 +30,7 @@ relative to its top-left corner.
The second case creates a cursor using a stock cursor, specified The second case creates a cursor using a stock cursor, specified
as one of the following: as one of the following:
@itemize{ @itemize[
@item{@scheme['arrow] --- the default cursor} @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} @item{@scheme['size-nw/se] --- arrows up-left and down-right}
} ]
If the cursor is created successfully, @method[cursor% ok?] If the cursor is created successfully, @method[cursor% ok?]
returns @scheme[#t], otherwise the cursor object cannot be returns @scheme[#t], otherwise the cursor object cannot be

View File

@ -576,7 +576,7 @@ Returns the size of @scheme[str] at it would be drawn in the drawing
The result is four real numbers: The result is four real numbers:
@itemize{ @itemize[
@item{the total width of the text (depends on both the font and the @item{the total width of the text (depends on both the font and the
text);} text);}
@ -589,7 +589,7 @@ The result is four real numbers:
@item{extra vertical space added to the font by the font designer @item{extra vertical space added to the font by the font designer
(included in the height, and often zero; depends only on the font).} (included in the height, and often zero; depends only on the font).}
} ]
The returned width and height define a rectangle is that guaranteed to The returned width and height define a rectangle is that guaranteed to
contain the text string when it is drawn, but the fit is not contain the text string when it is drawn, but the fit is not
@ -657,7 +657,7 @@ Returns @scheme[#t] if the drawing context is usable.
Determines the opacity of drawing, under certain conditions: Determines the opacity of drawing, under certain conditions:
@itemize{ @itemize[
@item{pen- and brush-based drawing when @method[dc<%> get-smoothing] @item{pen- and brush-based drawing when @method[dc<%> get-smoothing]
produces @scheme['smoothed] or @scheme['aligned], and when the produces @scheme['smoothed] or @scheme['aligned], and when the
@ -669,7 +669,7 @@ Determines the opacity of drawing, under certain conditions:
fading the drawing color), and when the drawing context is not fading the drawing color), and when the drawing context is not
an instance of @scheme[post-script-dc].} an instance of @scheme[post-script-dc].}
} ]
A value of @scheme[0.0] corresponds to completely transparent (i.e., A value of @scheme[0.0] corresponds to completely transparent (i.e.,
invisible) drawing, and @scheme[1.0] corresponds to completely opaque invisible) drawing, and @scheme[1.0] corresponds to completely opaque
@ -884,7 +884,7 @@ For monochrome drawing, all non-black colors are treated as
Determines how text is drawn: Determines how text is drawn:
@itemize{ @itemize[
@item{@scheme['solid] --- Before text is drawn, the destination area @item{@scheme['solid] --- Before text is drawn, the destination area
is filled with the text background color (see @method[dc<%> is filled with the text background color (see @method[dc<%>
@ -894,7 +894,7 @@ Determines how text is drawn:
existing image in the destination, as if overlaying text existing image in the destination, as if overlaying text
written on transparent film.} written on transparent film.}
} ]
} }

View File

@ -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 The @scheme[style] flags adjust the appearance of the dialog on some
platforms: platforms:
@itemize{ @itemize[
@item{@scheme['no-caption] --- omits the title bar for the dialog @item{@scheme['no-caption] --- omits the title bar for the dialog
(Windows)} (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, @item{@scheme['no-sheet] --- uses a movable window for the dialog,
even if a parent window is provided (Mac OS X)} even if a parent window is provided (Mac OS X)}
} ]
Even if the dialog is not shown, a few notification events may be Even if the dialog is not shown, a few notification events may be
queued for the dialog on creation. Consequently, the new dialog's queued for the dialog on creation. Consequently, the new dialog's

View File

@ -190,7 +190,7 @@ Displays a message to the user in a (modal) dialog, using
breaking lines. breaking lines.
The style must include exactly one of the following: The style must include exactly one of the following:
@itemize{ @itemize[
@item{@scheme['ok] --- the dialog only has an @onscreen{OK} button @item{@scheme['ok] --- the dialog only has an @onscreen{OK} button
and always returns @scheme['ok].} 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 labels, so that the user does not have to read the message text
carefully to make a selection.} carefully to make a selection.}
} ]
In addition, @scheme[style] can contain @scheme['caution] to make the In addition, @scheme[style] can contain @scheme['caution] to make the
dialog use a caution icon instead of the application (or generic 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 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 is platform-specific, and labels should be assigned to
the buttons based on their role: the buttons based on their role:
@itemize{ @itemize[
@item{Button 1 is the normal action, and it is usually the default @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 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 Mac OS X, it is left-aligned in the dialog). Use this button only
for three-button dialogs.} for three-button dialogs.}
} ]
Despite the above guidelines, any combination of visible buttons is Despite the above guidelines, any combination of visible buttons is
allowed in the dialog. allowed in the dialog.
@ -323,13 +323,13 @@ See also @scheme[message+check-box/custom].
Like @scheme[message-box], except that Like @scheme[message-box], except that
@itemize{ @itemize[
@item{the dialog contains a check box whose label is @scheme[check-label];} @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 @item{the result is two values: the @scheme[message-box] result, and a
boolean indicating whether the box was checked; and} boolean indicating whether the box was checked; and}
@item{@scheme[style] can contain @scheme['checked] to indicate that the check box @item{@scheme[style] can contain @scheme['checked] to indicate that the check box
should be initially checked.} should be initially checked.}
}} ]}
@defproc[(message+check-box/custom [title label-string?] @defproc[(message+check-box/custom [title label-string?]
[message string] [message string]
@ -346,13 +346,13 @@ Like @scheme[message-box], except that
(one-of/c 1 2 3 close-result)]{ (one-of/c 1 2 3 close-result)]{
Like @scheme[message-box/custom], except that Like @scheme[message-box/custom], except that
@itemize{ @itemize[
@item{the dialog contains a check box whose label is @scheme[check-label];} @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 @item{the result is two values: the @scheme[message-box] result, and a
boolean indicating whether the box was checked; and} boolean indicating whether the box was checked; and}
@item{@scheme[style] can contain @scheme['checked] to indicate that the check box @item{@scheme[style] can contain @scheme['checked] to indicate that the check box
should be initially checked.} should be initially checked.}
} ]

View File

@ -11,7 +11,7 @@ interface. For example, the @method[canvas<%> get-dc] method of a
canvas returns a @scheme[dc<%>] instance for drawing into the canvas canvas returns a @scheme[dc<%>] instance for drawing into the canvas
window. Other kinds of DCs draw to different kinds of devices: window. Other kinds of DCs draw to different kinds of devices:
@itemize{ @itemize[
@item{@scheme[bitmap-dc%] --- a @deftech{bitmap DC} draws to an @item{@scheme[bitmap-dc%] --- a @deftech{bitmap DC} draws to an
offscreen bitmap.} offscreen bitmap.}
@ -22,7 +22,7 @@ window. Other kinds of DCs draw to different kinds of devices:
@item{@scheme[printer-dc%] --- a @deftech{printer DC} draws to a @item{@scheme[printer-dc%] --- a @deftech{printer DC} draws to a
platform-specific printer device (Windows, Mac OS X).} platform-specific printer device (Windows, Mac OS X).}
} ]
Tools that are used for drawing include the following: @scheme[pen%] Tools that are used for drawing include the following: @scheme[pen%]
objects for drawing lines and shape outlines, @scheme[brush%] objects for drawing lines and shape outlines, @scheme[brush%]

View File

@ -264,11 +264,11 @@ If @scheme[refresh?] is not @scheme[#f], then the editor is requesting
to be updated immediately. to be updated immediately.
The @scheme[bias] argument is one of: 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['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['none] --- no special scrolling instructions}
@item{@scheme['end] --- if the range doesn't fit in the visible area, show the bottom-right region} @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, The return value is @scheme[#t] if the @techlink{display} is scrolled,
@scheme[#f] if not (either because the requested region is already @scheme[#f] if not (either because the requested region is already

View File

@ -34,7 +34,7 @@ If a canvas is initialized with @scheme[#f] for @scheme[editor],
The @scheme[style] list can contain the following flags: The @scheme[style] list can contain the following flags:
@itemize{ @itemize[
@item{@scheme['no-border] --- omits a border around the canvas} @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 @item{@scheme['transparent] --- the canvas is ``erased'' before an
update using it's parent window's background} update using it's parent window's background}
} ]
While vertical scrolling of text editors is based on lines, While vertical scrolling of text editors is based on lines,
horizontal scrolling and pasteboard vertical scrolling is based on a 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. immediately after a successful scroll.
The @scheme[bias] argument is one of: The @scheme[bias] argument is one of:
@itemize{ @itemize[
@item{@scheme['start] --- if the range doesn't fit in the visible @item{@scheme['start] --- if the range doesn't fit in the visible
area, show the top-left region} 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, @item{@scheme['end] --- if the range doesn't fit in the visible area,
show the bottom-right region} show the bottom-right region}
} ]
The return value is @scheme[#t] if the @techlink{display} is scrolled, @scheme[#f] The return value is @scheme[#t] if the @techlink{display} is scrolled, @scheme[#f]
if not (either because the requested region is already visible, if not (either because the requested region is already visible,

View File

@ -11,7 +11,7 @@
Given a @scheme[keymap%] object, the keymap is loaded with mappable Given a @scheme[keymap%] object, the keymap is loaded with mappable
functions that apply to all @scheme[editor<%>] objects: functions that apply to all @scheme[editor<%>] objects:
@itemize{ @itemize[
@item{@scheme["copy-clipboard"]} @item{@scheme["copy-clipboard"]}
@item{@scheme["copy-append-clipboard"]} @item{@scheme["copy-append-clipboard"]}
@item{@scheme["cut-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["undo"]}
@item{@scheme["redo"]} @item{@scheme["redo"]}
@item{@scheme["select-all"]} @item{@scheme["select-all"]}
} ]
} }
@ -44,7 +44,7 @@ See also
Given a @scheme[keymap%] object, the table is loaded with functions Given a @scheme[keymap%] object, the table is loaded with functions
that apply to all @scheme[text%] objects: that apply to all @scheme[text%] objects:
@itemize{ @itemize[
@item{@scheme["forward-character"]} @item{@scheme["forward-character"]}
@item{@scheme["backward-character"]} @item{@scheme["backward-character"]}
@item{@scheme["previous-line"]} @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["delete-line"]}
@item{@scheme["undo"]} @item{@scheme["undo"]}
@item{@scheme["redo"]} @item{@scheme["redo"]}
} ]
See also See also
@scheme[add-editor-keymap-functions]. @scheme[add-editor-keymap-functions].

View File

@ -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 Performs a generic edit command. The @scheme[op] argument must be a
valid edit command, one of: valid edit command, one of:
@itemize{ @itemize[
@item{@scheme['undo] --- undoes the last operation} @item{@scheme['undo] --- undoes the last operation}
@item{@scheme['redo] --- undoes the last undo} @item{@scheme['redo] --- undoes the last undo}
@item{@scheme['clear] --- deletes the current selection} @item{@scheme['clear] --- deletes the current selection}
@ -481,7 +481,7 @@ valid edit command, one of:
@method[editor<%> on-new-box] .} @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 @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] .} @method[editor<%> on-new-image-snip] .}
} ]
If @scheme[recursive?] is not @scheme[#f], then the command is passed on to 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). 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 The possible values for @scheme[format] are listed below. A single set of
@scheme[format] values are used for loading and saving files: @scheme[format] values are used for loading and saving files:
@itemize{ @itemize[
@item{@scheme['guess] --- guess the format based on @item{@scheme['guess] --- guess the format based on
extension and/or contents; when saving a file, this is the same as 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 (@scheme[text%] only); when writing, change automatic newlines (from
word-wrapping) into real carriage returns} word-wrapping) into real carriage returns}
} ]
In a @scheme[text%] instance, the format returned from @method[text% In a @scheme[text%] instance, the format returned from @method[text%
get-file-format] is always one of @scheme['standard], @scheme['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 using the platform-specific standard printing mechanism. The possible
values are values are
@itemize{ @itemize[
@item{@scheme['standard] --- print using the platform-standard @item{@scheme['standard] --- print using the platform-standard
mechanism (via a @scheme[printer-dc%]) under Windows and 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 @item{@scheme['postscript] --- print to a PostScript file (via a
@scheme[post-script-dc%])} @scheme[post-script-dc%])}
} ]
If @scheme[parent] is not @scheme[#f], it is used as the parent window If @scheme[parent] is not @scheme[#f], it is used as the parent window
for configuration dialogs (for either PostScript or platform-standard 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<%> when the editor was written to the stream; see also @method[editor<%>
write-to-file]). write-to-file]).
@itemize{ @itemize[
@item{In the former case, if the @scheme[overwrite-styles?] argument @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 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 @item{In the latter case, the editor's style list will be changed to
the previously-read list.} 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: The domain of focus-setting is one of:
@itemize{ @itemize[
@item{@scheme['immediate] --- only set the focus owner within the @item{@scheme['immediate] --- only set the focus owner within the
editor} editor}
@ -2117,7 +2117,7 @@ The domain of focus-setting is one of:
@item{@scheme['global] --- make this editor or the new focus @item{@scheme['global] --- make this editor or the new focus
owner get the keyboard focus among all elements in the editor's frame} owner get the keyboard focus among all elements in the editor's frame}
} ]
@MonitorMethod[@elem{The focus state of an editor} @elem{by the @MonitorMethod[@elem{The focus state of an editor} @elem{by the
system} @elem{@method[editor<%> on-focus]} @elem{focus}] system} @elem{@method[editor<%> on-focus]} @elem{focus}]

View File

@ -7,7 +7,7 @@
The editor toolbox provides a foundation for two common kinds of The editor toolbox provides a foundation for two common kinds of
applications: applications:
@itemize{ @itemize[
@item{@italic{Programs that need a sophisticated text editor} --- @item{@italic{Programs that need a sophisticated text editor} ---
The simple text field control is inadequate for text-intensive 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, lines and boxes, but many applications need an interactive canvas,
where the user can drag and resize individual objects.} where the user can drag and resize individual objects.}
} ]
Both kinds of applications need an extensible editor that can handle Both kinds of applications need an extensible editor that can handle
text, images, programmer-defined items, and even embedded 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 editor toolbox therefore provides two kinds of editors via two
classes: classes:
@itemize{ @itemize[
@item{@scheme[text%] --- in a @deftech{text editor}, items are @item{@scheme[text%] --- in a @deftech{text editor}, items are
automatically positioned in a paragraph flow.} 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}, @item{@scheme[pasteboard%] --- in a @deftech{pasteboard editor},
items are explicitly positioned and dragable.} items are explicitly positioned and dragable.}
} ]
This editor architecture addresses the full range of real-world This editor architecture addresses the full range of real-world
issues for an editor---including cut-and-paste, extensible file 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 The editor toolbox supports extensible and nestable editors by
decomposing an editor assembly into three functional parts: decomposing an editor assembly into three functional parts:
@itemize{ @itemize[
@item{The @deftech{editor} itself stores the state of the text or @item{The @deftech{editor} itself stores the state of the text or
pasteboard and handles most events and editing operations. The 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 @scheme[editor-snip%] class also acts as a display for embedded
editors.} editors.}
} ]
These three parts are illustrated by a simple word processor. The These three parts are illustrated by a simple word processor. The
editor corresponds to the text document. The editor object receives 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 style is encoded in a @deftech{style delta} (or simply
@deftech{delta}). A delta encodes changes such as @deftech{delta}). A delta encodes changes such as
@itemize{ @itemize[
@item{change the font family to @italic{X};} @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}.} @item{change everything to match the style description @italic{Z}.}
} ]
Style objects are never created separately; rather, they are always Style objects are never created separately; rather, they are always
created through a @deftech{style list}, an instance of the 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: 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 @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 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 character style is the shift style. However, FrameMaker allows only
those two levels; with join styles support any number of levels.)} those two levels; with join styles support any number of levels.)}
} ]
@index*['("Standard style") (list @elem{@scheme["Standard"] @index*['("Standard style") (list @elem{@scheme["Standard"]
style})]{Usually}, when text is inserted into a text editor, it 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 Graceful and extensible encoding of snips requires that
two issues are addressed: two issues are addressed:
@itemize{ @itemize[
@item{The encoding function for a snip can be associated with the snip @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 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 each editor data object has an @deftech{editor data class}, which is
an instance of the @scheme[editor-data-class%] class.} an instance of the @scheme[editor-data-class%] class.}
} ]
Snip classes, snip data, and snip data classes solve problems related Snip classes, snip data, and snip data classes solve problems related
to encoding and decoding snips. In an application that has no need 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: To store and load information about a snip or region in an editor:
@itemize{ @itemize[
@item{derive new classes from @scheme[editor-data%] and @item{derive new classes from @scheme[editor-data%] and
@scheme[editor-data-class%].} @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 not for file-saving encoding; see @|globaleditordatadiscuss| for
information on extending the file format.} information on extending the file format.}
} ]
@subsection[#:tag "globaleditordata"]{Global Data: Headers and Footers} @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 special header and footer sections. To save and load special header
and/or footer records: and/or footer records:
@itemize{ @itemize[
@item{Pick a name for each header/footer record. This name should not @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 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<%> @method[editor<%> read-header-from-file] and/or @method[editor<%>
read-footer-from-file] methods.} read-footer-from-file] methods.}
} ]
When an editor is saved, the methods @method[editor<%> When an editor is saved, the methods @method[editor<%>
write-headers-to-file] and @method[editor<%> write-footers-to-file] 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: Text can be extracted from an editor in either of two forms:
@itemize{ @itemize[
@item{@deftech{Simple text}, where there is one character per @item{@deftech{Simple text}, where there is one character per
@techlink{item}. @techlink{Item}s that are characters are mapped to @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 ``flattened'' because the editor's @techlink{item}s have been reduced
to a linear sequence of characters.} to a linear sequence of characters.}
} ]
@section[#:tag "drawcaretinfo"]{Caret Ownership} @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 specifies whether the caret should be drawn with the data. This
argument can be any of (in increasing order): argument can be any of (in increasing order):
@itemize{ @itemize[
@item{@indexed-scheme['no-caret] --- The caret should not be drawn at @item{@indexed-scheme['no-caret] --- The caret should not be drawn at
all.} 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 @item{@indexed-scheme['show-caret] --- The caret should be drawn to show
keyboard focus ownership.} keyboard focus ownership.}
} ]
The @scheme['show-inactive-caret] display mode is useful for showing The @scheme['show-inactive-caret] display mode is useful for showing
selection ranges in text editors that do not have the focus. This 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 Instances of @scheme[editor<%>] have three levels of internal
locking: locking:
@itemize{ @itemize[
@item{write locking --- When an editor is internally locked for @item{write locking --- When an editor is internally locked for
writing, the abstract content of the editor cannot be changed (e.g., 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 snips. The @method[editor<%> locked-for-read?] method reports
whether an editor is currently locked for reading.} whether an editor is currently locked for reading.}
} ]
The internal lock for an editor is @italic{not} affected by calls to The internal lock for an editor is @italic{not} affected by calls to
@method[editor<%> lock]. @method[editor<%> lock].
@ -727,7 +727,7 @@ Nevertheless, the editor supports certain concurrent patterns
refreshes do not prevent editor modifications, the following are refreshes do not prevent editor modifications, the following are
guaranteed: guaranteed:
@itemize{ @itemize[
@item{When an editor's @method[editor<%> refresh] method is @item{When an editor's @method[editor<%> refresh] method is
called during an edit sequence (which is started by 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 delegated to the edit-sequence thread, to be called when the edit
sequence is complete.} sequence is complete.}
} ]
Thus, disabling an @scheme[editor-canvas%] object (using Thus, disabling an @scheme[editor-canvas%] object (using
@method[window<%> enable]) is sufficient to ensure that a @method[window<%> enable]) is sufficient to ensure that a

View File

@ -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 A wordbreak objects implements a mapping from each character to a list
of symbols. The following symbols are legal elements of the list: of symbols. The following symbols are legal elements of the list:
@itemize{ @itemize[
@item{@indexed-scheme['caret]} @item{@indexed-scheme['caret]}
@item{@indexed-scheme['line]} @item{@indexed-scheme['line]}
@item{@indexed-scheme['selection]} @item{@indexed-scheme['selection]}
@item{@indexed-scheme['user1]} @item{@indexed-scheme['user1]}
@item{@indexed-scheme['user2]} @item{@indexed-scheme['user2]}
} ]
The presence of a flag in a character's value indicates that the 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 character does not break a word when searching for breaks using the

View File

@ -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 in the handler thread of an eventspace, then @scheme[yield] starts
processing events in that eventspace until processing events in that eventspace until
@itemize{ @itemize[
@item{no top-level windows in the eventspace are visible;} @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 with @scheme['root] (i.e., creating a @scheme['root] menu bar
prevents an eventspace from ever unblocking).} prevents an eventspace from ever unblocking).}
} ]
When called in a non-handler thread, @scheme[yield] returns When called in a non-handler thread, @scheme[yield] returns
immediately. In either case, the result is @scheme[#t]. immediately. In either case, the result is @scheme[#t].

View File

@ -7,7 +7,7 @@ A @defterm{font} is an object which determines the appearance of text,
primarily when drawing text to a device context. A font is determined primarily when drawing text to a device context. A font is determined
by seven properties: by seven properties:
@itemize{ @itemize[
@item{size --- The size of the text, either in points (the default) @item{size --- The size of the text, either in points (the default)
or logical drawing units, depending on the or logical drawing units, depending on the
@ -16,7 +16,7 @@ A @defterm{font} is an object which determines the appearance of text,
@item{family --- A platform- and device-independent font @item{family --- A platform- and device-independent font
designation. The families are: designation. The families are:
@itemize{ @itemize[
@item{@indexed-scheme['default]} @item{@indexed-scheme['default]}
@item{@indexed-scheme['decorative]} @item{@indexed-scheme['decorative]}
@item{@indexed-scheme['roman]} @item{@indexed-scheme['roman]}
@ -25,7 +25,7 @@ A @defterm{font} is an object which determines the appearance of text,
@item{@indexed-scheme['modern] (fixed width)} @item{@indexed-scheme['modern] (fixed width)}
@item{@indexed-scheme['symbol] (Greek letters and more)} @item{@indexed-scheme['symbol] (Greek letters and more)}
@item{@indexed-scheme['system] (used to draw control labels)} @item{@indexed-scheme['system] (used to draw control labels)}
} ]
The @scheme['modern] designation is special under Mac OS X and X with The @scheme['modern] designation is special under Mac OS X and X with
fontconfig/Xft; characters in the ASCII range 0-255 are converted to fontconfig/Xft; characters in the ASCII range 0-255 are converted to
@ -47,23 +47,23 @@ A @defterm{font} is an object which determines the appearance of text,
drawing text.} drawing text.}
@item{style --- The slant style of the font, one of: @item{style --- The slant style of the font, one of:
@itemize{ @itemize[
@item{@indexed-scheme['normal]} @item{@indexed-scheme['normal]}
@item{@indexed-scheme['slant] (Windows, Mac OS X: same as @scheme['italic]; X: tries @scheme['italic] if @scheme['slant] font does not exist)} @item{@indexed-scheme['slant] (Windows, Mac OS X: same as @scheme['italic]; X: tries @scheme['italic] if @scheme['slant] font does not exist)}
@item{@indexed-scheme['italic] (X: tries @scheme['slant] if @scheme['italic] font does not exist)} @item{@indexed-scheme['italic] (X: tries @scheme['slant] if @scheme['italic] font does not exist)}
}} ]}
@item{weight --- The weight of the font, one of: @item{weight --- The weight of the font, one of:
@itemize{ @itemize[
@item{@indexed-scheme['normal]} @item{@indexed-scheme['normal]}
@item{@indexed-scheme['light]} @item{@indexed-scheme['light]}
@item{@indexed-scheme['bold]} @item{@indexed-scheme['bold]}
}} ]}
@item{underline? --- @scheme[#t] for underlined, @scheme[#f] for plain.} @item{underline? --- @scheme[#t] for underlined, @scheme[#f] for plain.}
@item{smoothing --- Amount of anti-alias smoothing, one of: @item{smoothing --- Amount of anti-alias smoothing, one of:
@itemize{ @itemize[
@item{@indexed-scheme['default] (platform-specific, sometimes user-configurable)} @item{@indexed-scheme['default] (platform-specific, sometimes user-configurable)}
@item{@indexed-scheme['partly-smoothed] (Windows: TrueType when available; @item{@indexed-scheme['partly-smoothed] (Windows: TrueType when available;
Mac OS X: 4-bit, pixel-aligned smoothing; Mac OS X: 4-bit, pixel-aligned smoothing;
@ -72,7 +72,7 @@ A @defterm{font} is an object which determines the appearance of text,
Mac OS X: Quartz smoothing; Mac OS X: Quartz smoothing;
X: fontconfig/Xft when available)} X: fontconfig/Xft when available)}
@item{@indexed-scheme['unsmoothed]} @item{@indexed-scheme['unsmoothed]}
} ]
Special case: @scheme['default] corresponds to Special case: @scheme['default] corresponds to
@scheme['partly-smoothed] when used with the @scheme['modern] family @scheme['partly-smoothed] when used with the @scheme['modern] family
and a font size between 9 and 13 (inclusive).} and a font size between 9 and 13 (inclusive).}
@ -82,7 +82,7 @@ A @defterm{font} is an object which determines the appearance of text,
bitmap drawing context), @scheme[#f] if the size of the font is in bitmap drawing context), @scheme[#f] if the size of the font is in
points (which can depend on screen resolution).} points (which can depend on screen resolution).}
} ]
To avoid creating multiple fonts with the same characteristics, use To avoid creating multiple fonts with the same characteristics, use
the global @scheme[font-list%] object @indexed-scheme[the-font-list]. the global @scheme[font-list%] object @indexed-scheme[the-font-list].

View File

@ -24,7 +24,7 @@ To find a font name for a family, MrEd looks for a preference name by
concatenating @litchar{MrEd:}, a @nonterm{dest}, a @nonterm{type}, concatenating @litchar{MrEd:}, a @nonterm{dest}, a @nonterm{type},
a @nonterm{weight}, and a @nonterm{style}, where a @nonterm{weight}, and a @nonterm{style}, where
@itemize{ @itemize[
@item{@nonterm{dest} is either @litchar{Screen} or @litchar{PostScript}.} @item{@nonterm{dest} is either @litchar{Screen} or @litchar{PostScript}.}
@ -37,7 +37,7 @@ To find a font name for a family, MrEd looks for a preference name by
@item{@nonterm{style} is either @litchar{Straight}, @litchar{Italic}, or @litchar{Slant}.} @item{@nonterm{style} is either @litchar{Straight}, @litchar{Italic}, or @litchar{Slant}.}
} ]
Furthermore, any of the latter three parts can be wildcarded with Furthermore, any of the latter three parts can be wildcarded with
@litchar{_}, as described below. The concatenated string is converted @litchar{_}, as described below. The concatenated string is converted
@ -345,7 +345,7 @@ Depending on whether the font is CID-based (typically for the Chinese,
Japanese, Korean, and Vietnamese language families, and as indicated Japanese, Korean, and Vietnamese language families, and as indicated
in the AFM file), MrEd must find additional files: in the AFM file), MrEd must find additional files:
@itemize{ @itemize[
@item{@italic{Non-CID:} In addition to an AFM file @item{@italic{Non-CID:} In addition to an AFM file
@filepath{@nonterm{x}.afm}, MrEd looks for a @filepath{@nonterm{x}.afm}, MrEd looks for a
@ -375,7 +375,7 @@ Depending on whether the font is CID-based (typically for the Chinese,
Unicode. MrEd automatically adds the font's character set to the font Unicode. MrEd automatically adds the font's character set to the font
name when producing PostScript with a CID-based font.} name when producing PostScript with a CID-based font.}
} ]
When drawing or measuring text using a particular PostScript font, if When drawing or measuring text using a particular PostScript font, if
the font does not contain a glyph for a character (or if a relevant the font does not contain a glyph for a character (or if a relevant

View File

@ -49,7 +49,7 @@ Under Windows and Mac OS X, a face name is interpreted simply as a
Serif"] maps to the font that is typically used for button Serif"] maps to the font that is typically used for button
labels. Under X, a face name has a more complex interpretation: labels. Under X, a face name has a more complex interpretation:
@itemize{ @itemize[
@item{If the string begins with a space, then the remainder of the @item{If the string begins with a space, then the remainder of the
string is interpreted as a fontconfig/Xft font name, but only string is interpreted as a fontconfig/Xft font name, but only
@ -89,7 +89,7 @@ Under Windows and Mac OS X, a face name is interpreted simply as a
@item{A string of any other format is interpreted as an X font name, @item{A string of any other format is interpreted as an X font name,
optionally parameterized with @litchar{%d}.} optionally parameterized with @litchar{%d}.}
} ]
The mapping for face names can be overridden (on all platforms) The mapping for face names can be overridden (on all platforms)
through the user's preferences, as described in through the user's preferences, as described in

View File

@ -60,7 +60,7 @@ they are created).
The @scheme[style] flags adjust the appearance of the frame on The @scheme[style] flags adjust the appearance of the frame on
some platforms: some platforms:
@itemize{ @itemize[
@item{@scheme['no-resize-border] --- omits the resizeable border @item{@scheme['no-resize-border] --- omits the resizeable border
around the window (Windows, X MWM) or grow box in the bottom right 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 background (Mac OS X); this style is ignored when
@scheme['no-caption] is specified} @scheme['no-caption] is specified}
} ]
If the @scheme['mdi-child] style is specified, the @scheme[parent] must be If the @scheme['mdi-child] style is specified, the @scheme[parent] must be
a frame with the @scheme['mdi-parent] style, otherwise @|MismatchExn|. 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: 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 @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 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 as Windows, and others use the small icon when iconifying the
frame; the large icon is ignored.} frame; the large icon is ignored.}
} ]
The bitmap for either icon can be any size, but most platforms scale 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 the small bitmap to 16 by 16 pixels and the large bitmap to 32 by 32

View File

@ -6,7 +6,7 @@
For documentation purposes, the graphics toolbox is organized into For documentation purposes, the graphics toolbox is organized into
three parts: three parts:
@itemize{ @itemize[
@item{The @deftech{windowing toolbox}, for implementing form-filling @item{The @deftech{windowing toolbox}, for implementing form-filling
GUI programs (such as a database query window) using buttons, menus, 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 browser). The editor toolbox is described in
@secref["editor-overview"].} @secref["editor-overview"].}
} ]
These three parts roughly represent layers of increasing These three parts roughly represent layers of increasing
sophistication. Simple GUI programs access only the windowing toolbox sophistication. Simple GUI programs access only the windowing toolbox

View File

@ -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 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: either a character or a special key symbol, one of the following:
@itemize{ @itemize[
@item{@indexed-scheme['start]} @item{@indexed-scheme['start]}
@item{@indexed-scheme['cancel]} @item{@indexed-scheme['cancel]}
@item{@indexed-scheme['clear]} @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['wheel-down] --- mouse wheel down one notch}
@item{@indexed-scheme['release] --- indicates a key-release event} @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]} @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 The special key symbols attempt to capture useful keys that have no
standard ASCII representation. A few keys have standard standard ASCII representation. A few keys have standard
representations that are not obvious: representations that are not obvious:
@itemize{ @itemize[
@item{@scheme[#\space] --- the space bar} @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} @item{@scheme[#\rubout] --- the delete key}
} ]
If a suitable special key symbol or ASCII representation is not If a suitable special key symbol or ASCII representation is not
available, @scheme[#\nul] (the NUL character) is reported. available, @scheme[#\nul] (the NUL character) is reported.

View File

@ -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 extensible way. Keymaps can be used without editors, as well. A
@scheme[keymap%] object contains @scheme[keymap%] object contains
@itemize{ @itemize[
@item{a mapping from function names to event-handling procedures; and} @item{a mapping from function names to event-handling procedures; and}
@item{a mapping from key and mouse sequences to function names.} @item{a mapping from key and mouse sequences to function names.}
} ]
A handler procedure in a keymap is invoked with a @scheme[key-event%] 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 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: The modifier identifiers are:
@itemize{ @itemize[
@item{@litchar{s:} --- All platforms: Shift} @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 @item{@litchar{?:} --- All platforms: allow match to character produced by opposite
use of Shift, AltGr/Option, and/or Caps Lock, when available; see use of Shift, AltGr/Option, and/or Caps Lock, when available; see
@xmethod[key-event% get-other-shift-key-code]} @xmethod[key-event% get-other-shift-key-code]}
} ]
If a particular modifier is not mentioned in a state string, it If a particular modifier is not mentioned in a state string, it
matches states whether that modifier is pressed or not pressed. A 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 @litchar{a}, @litchar{2}, @litchar{?}) or a special name. The
special names are as follows: special names are as follows:
@itemize{ @itemize[
@item{@litchar{leftbutton} (button down)} @item{@litchar{leftbutton} (button down)}
@item{@litchar{rightbutton}} @item{@litchar{rightbutton}}
@item{@litchar{middlebutton}} @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{f22}}
@item{@litchar{f23}} @item{@litchar{f23}}
@item{@litchar{f24}} @item{@litchar{f24}}
} ]
For a special keyword, the capitalization does not matter. However, For a special keyword, the capitalization does not matter. However,
capitalization is important for single-letter keynames. Furthermore, 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: Examples:
@itemize{ @itemize[
@item{@scheme["space"] --- matches whenever the space bar is pressed, @item{@scheme["space"] --- matches whenever the space bar is pressed,
regardless of the state of modifiers keys.} regardless of the state of modifiers keys.}
@ -322,7 +322,7 @@ Examples:
that produces @litchar{+}, even if producing @litchar{+} normally requires that produces @litchar{+}, even if producing @litchar{+} normally requires
pressing Shift.} pressing Shift.}
} ]
A call to @method[keymap% map-function] that would map a particular 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 key sequence both as a prefix and as a complete sequence raises an

View File

@ -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 The @scheme[style] specification must include exactly one of the
following: following:
@itemize{ @itemize[
@item{@scheme['single] --- Creates a single-selection list.} @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 clicked item. Use this style for a list when multiple selections are
the rule rather than the exception.} the rule rather than the exception.}
} ]
The @scheme['multiple] and @scheme['extended] styles determine a The @scheme['multiple] and @scheme['extended] styles determine a
platform-independent interpretation of unmodified mouse clicks, but platform-independent interpretation of unmodified mouse clicks, but
dragging, shift-clicking, control-clicking, etc. have dragging, shift-clicking, control-clicking, etc. have

View File

@ -6,7 +6,7 @@
A list control gives the user a list of string items to choose from. A list control gives the user a list of string items to choose from.
There are two built-in classes that implement There are two built-in classes that implement
@scheme[list-control<%>]: @scheme[list-control<%>]:
@itemize{ @itemize[
@item{@scheme[choice%] --- presents the list in a popup menu (so @item{@scheme[choice%] --- presents the list in a popup menu (so
the user can choose only one item at a time)} 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 allowing the use to choose one item (if the style includes
@scheme['single]) or any number of items} @scheme['single]) or any number of items}
} ]
In either case, the set of user-selectable items can be changed In either case, the set of user-selectable items can be changed
dynamically. dynamically.

View File

@ -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 The result depends on @scheme[what], and a @scheme[#f] result is only
possible when @scheme[what] is @scheme['x-display]: possible when @scheme[what] is @scheme['x-display]:
@itemize{ @itemize[
@item{@scheme['init-file] returns the path to the user-specific @item{@scheme['init-file] returns the path to the user-specific
initialization file (containing Scheme code). The directory part of initialization file (containing Scheme code). The directory part of
the path is the same path as returned for @scheme['init-dir] by the path is the same path as returned for @scheme['init-dir] by
MzScheme's @scheme[find-system-path]. The file name is MzScheme's @scheme[find-system-path]. The file name is
platform-specific: platform-specific:
@itemize{ @itemize[
@item{@|AllUnix|: @indexed-file{.mredrc}} @item{@|AllUnix|: @indexed-file{.mredrc}}
@item{Windows: @indexed-file{mredrc.ss}} @item{Windows: @indexed-file{mredrc.ss}}
}} ]}
@item{@scheme['setup-file] returns the path to the file @item{@scheme['setup-file] returns the path to the file
containing resources used by @scheme[get-resource]; obsolete.} 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} other platforms, or when neither @Flag{display} nor @envvar{DISPLAY}
was specified, the result is @scheme[#f].} 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] @scheme[section] is one of the following strings, then @scheme[file]
is ignored, and @scheme[entry] is used as a resource path: is ignored, and @scheme[entry] is used as a resource path:
@itemize{ @itemize[
@item{@indexed-scheme["HKEY_CLASSES_ROOT"]} @item{@indexed-scheme["HKEY_CLASSES_ROOT"]}
@item{@indexed-scheme["HKEY_CURRENT_CONFIG"]} @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_LOCAL_MACHINE"]}
@item{@indexed-scheme["HKEY_USERS"]} @item{@indexed-scheme["HKEY_USERS"]}
} ]
In that case, the @scheme[entry] argument is parsed as a resource entry 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 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 When @scheme[redirect-ports?] is true, the following parameters are
initialized in the created eventspace's handler thread: initialized in the created eventspace's handler thread:
@itemize{ @itemize[
@item{@scheme[current-output-port] --- writes to the frame} @item{@scheme[current-output-port] --- writes to the frame}
@item{@scheme[current-error-port] --- writes to the frame} @item{@scheme[current-error-port] --- writes to the frame}
@item{@scheme[current-input-port] --- always returns @scheme[eof]} @item{@scheme[current-input-port] --- always returns @scheme[eof]}
} ]
The keymap for the read-eval-print loop's editor is initialized by The keymap for the read-eval-print loop's editor is initialized by
calling the current keymap initializer procedure, which is determined calling the current keymap initializer procedure, which is determined

View File

@ -31,7 +31,7 @@ See also @|mousekeydiscuss|.
Creates a mouse event for a particular type of event. The event types Creates a mouse event for a particular type of event. The event types
are: are:
@itemize{ @itemize[
@item{@scheme['enter] --- mouse pointer entered the window} @item{@scheme['enter] --- mouse pointer entered the window}
@item{@scheme['leave] --- mouse pointer left the window} @item{@scheme['leave] --- mouse pointer left the window}
@item{@scheme['left-down] --- left mouse button pressed} @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-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['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} @item{@scheme['motion] --- mouse moved, with or without button(s) pressed}
} ]
See the corresponding @schemeidfont{get-} and @schemeidfont{set-} See the corresponding @schemeidfont{get-} and @schemeidfont{set-}
methods for information about @scheme[left-down], methods for information about @scheme[left-down],

View File

@ -812,7 +812,7 @@ Deselects all selected snips in the editor.
Selects, drags, and resizes snips: Selects, drags, and resizes snips:
@itemize{ @itemize[
@item{Clicking on a snip selects the snip. Shift-clicking extends @item{Clicking on a snip selects the snip. Shift-clicking extends
the current selection with the snip.} 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 @item{Clicking on a hiliting tab for a selected object resizes the
object.} object.}
} ]
} }

View File

@ -16,7 +16,7 @@ In addition to its color, width, and style, a pen can have a stipple
A pen's style is one of the following: A pen's style is one of the following:
@itemize{ @itemize[
@item{@indexed-scheme['transparent] --- Draws with no effect (on the @item{@indexed-scheme['transparent] --- Draws with no effect (on the
outline of the drawn shape).} outline of the drawn shape).}
@ -31,7 +31,7 @@ A pen's style is one of the following:
or colored stipple is xor-ed with existing destination pixel or colored stipple is xor-ed with existing destination pixel
values. The @scheme['xor] mapping is unspecified for arbitrary values. The @scheme['xor] mapping is unspecified for arbitrary
color combinations, but the mapping provides two guarantees: color combinations, but the mapping provides two guarantees:
@itemize{ @itemize[
@item{Black-and-white drawing to a color or monochrome @item{Black-and-white drawing to a color or monochrome
destination always works as expected: black xor white = black, destination always works as expected: black xor white = black,
@ -41,7 +41,7 @@ A pen's style is one of the following:
@item{Performing the same drawing operation twice in a row with @item{Performing the same drawing operation twice in a row with
@scheme['xor] is equivalent to a no-op.} @scheme['xor] is equivalent to a no-op.}
} ]
In a smoothing mode, @scheme['xor] is equivalent to @scheme['solid].} In a smoothing mode, @scheme['xor] is equivalent to @scheme['solid].}
@item{@indexed-scheme['hilite] --- In unsmoothed mode, existing @item{@indexed-scheme['hilite] --- In unsmoothed mode, existing
@ -60,7 +60,7 @@ A pen's style is one of the following:
@item{The following special pen modes use the pen's color, and they only @item{The following special pen modes use the pen's color, and they only
apply when a stipple is not used: apply when a stipple is not used:
@itemize{ @itemize[
@item{@indexed-scheme['dot]} @item{@indexed-scheme['dot]}
@item{@indexed-scheme['long-dash]} @item{@indexed-scheme['long-dash]}
@item{@indexed-scheme['short-dash]} @item{@indexed-scheme['short-dash]}
@ -69,9 +69,9 @@ A pen's style is one of the following:
@item{@indexed-scheme['xor-long-dash]} @item{@indexed-scheme['xor-long-dash]}
@item{@indexed-scheme['xor-short-dash]} @item{@indexed-scheme['xor-short-dash]}
@item{@indexed-scheme['xor-dot-dash]} @item{@indexed-scheme['xor-dot-dash]}
}} ]}
} ]
To avoid creating multiple pens with the same characteristics, use the To avoid creating multiple pens with the same characteristics, use the
global @scheme[pen-list%] object @indexed-scheme[the-pen-list], or global @scheme[pen-list%] object @indexed-scheme[the-pen-list], or

View File

@ -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: The following are the (case-sensitive) preference names used by MrEd:
@itemize{ @itemize[
@item{@ResourceFirst{default-font-size} --- sets the default font size @item{@ResourceFirst{default-font-size} --- sets the default font size
the basic style in a style list, and thus the default font size for 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<%>].} @scheme[clipboard<%>].}
} ]
In addition, preference names built from font face names can provide In addition, preference names built from font face names can provide
or override default entries for the @scheme[font-name-directory<%>]; or override default entries for the @scheme[font-name-directory<%>];

View File

@ -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: Returns the type of the event, one of the following:
@itemize{ @itemize[
@item{@scheme['top] --- user clicked a scroll-to-top button} @item{@scheme['top] --- user clicked a scroll-to-top button}
@item{@scheme['bottom] --- user clicked a scroll-to-bottom 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} @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-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['page-down] --- user clicked an arrow to scroll down or right one page}
@item{@scheme['thumb] --- user dragged the scroll position indicator} @item{@scheme['thumb] --- user dragged the scroll position indicator}
} ]
} }

View File

@ -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 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: 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['alt] --- Meta (Windows and X only)}
@item{@scheme['cmd] --- Command (Mac OS X only)} @item{@scheme['cmd] --- Command (Mac OS X only)}
@item{@scheme['meta] --- Meta (X only)} @item{@scheme['meta] --- Meta (X only)}
@item{@scheme['ctl] --- Control} @item{@scheme['ctl] --- Control}
@item{@scheme['shift] --- Shift} @item{@scheme['shift] --- Shift}
@item{@scheme['option] --- Option (Mac OS X only)} @item{@scheme['option] --- Option (Mac OS X only)}
} ]
Under X, at most one of @scheme['alt] and @scheme['meta] can be Under X, at most one of @scheme['alt] and @scheme['meta] can be
supplied; the only difference between @scheme['alt] and supplied; the only difference between @scheme['alt] and

View File

@ -259,7 +259,7 @@ If @scheme[refresh?] is not @scheme[#f], then the editor is requesting to
be updated immediately. be updated immediately.
The @scheme[bias] argument is one of: 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['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} @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] The result is @scheme[#t] if the editor is scrolled, @scheme[#f]
otherwise. otherwise.

View File

@ -13,7 +13,7 @@ In deriving a new @scheme[snip-class%] class, override the
derived class (where each instance corresponds to a single snip derived class (where each instance corresponds to a single snip
class): class):
@itemize{ @itemize[
@item{Set the classname using @method[snip-class% set-classname].} @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 name is inserted into the same class list multiple times, all
but the first insertion is ignored.} but the first insertion is ignored.}
} ]
See also @|snipclassdiscuss|. See also @|snipclassdiscuss|.

View File

@ -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 In deriving a new snip class, these methods must be overridden to
create a useful snip: create a useful snip:
@itemize{ @itemize[
@item{@method[snip% get-extent]} @item{@method[snip% get-extent]}
@ -37,14 +37,14 @@ create a useful snip:
in the snip's administrator when the state changes the first in the snip's administrator when the state changes the first
time} time}
} ]
If a snip can contain more than one @techlink{item}, then the snip's @techlink{count} If a snip can contain more than one @techlink{item}, then the snip's @techlink{count}
must be maintained as well. must be maintained as well.
To define a class of snips that can be saved or cut-and-pasted: 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 @item{Create an instance of @scheme[snip-class%], implementing the
@method[snip-class% read] method. Export 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.} @item{Override the @method[snip% write] method.}
} ]
To define a class of snips that read specially with To define a class of snips that read specially with
@scheme[open-input-text-editor]: @scheme[open-input-text-editor]:
@itemize{ @itemize[
@item{Make your @scheme[snip%] class implement @scheme[readable-snip<%>].} @item{Make your @scheme[snip%] class implement @scheme[readable-snip<%>].}
@item{Implement the @method[readable-snip<%> read-special] method.} @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 Returns flags defining the behavior of the snip, a list of the
following symbols: following symbols:
@itemize{ @itemize[
@item{@indexed-scheme['is-text] --- this is a text snip derived from @item{@indexed-scheme['is-text] --- this is a text snip derived from
@scheme[string-snip%]; do not set this flag} @scheme[string-snip%]; do not set this flag}
@ -357,7 +357,7 @@ following symbols:
notification is given as a redundant call to @method[snip% notification is given as a redundant call to @method[snip%
set-admin]} set-admin]}
}} ]}
@defmethod[(get-num-scroll-steps) @defmethod[(get-num-scroll-steps)

View File

@ -5,7 +5,7 @@
A @scheme[style-delta%] object encapsulates a style change. The changes expressible A @scheme[style-delta%] object encapsulates a style change. The changes expressible
by a delta include: by a delta include:
@itemize{ @itemize[
@item{changing the font family} @item{changing the font family}
@item{changing the font face} @item{changing the font face}
@item{changing the font size to a new value} @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{dimming or brightening the foreground color, etc.}
@item{changing the background color, etc.} @item{changing the background color, etc.}
@item{changing text backing transparency} @item{changing text backing transparency}
} ]
The @method[style-delta% set-delta] method is convenient for most The @method[style-delta% set-delta] method is convenient for most
style delta settings; it takes a high-level delta specification and 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 @scheme[weight-off] turns off a weight setting when it is
present. These two interact precisely in the following way: 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], @item{If both @scheme[weight-on] and @scheme[weight-off] are set to @scheme['base],
then the font weight is not changed.} then the font weight is not changed.}
@item{If @scheme[weight-on] is not @scheme['base], then the weight is set to @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 @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] different values, then the weight is changed to @scheme[weight-on]
only when the base style has the weight @scheme[weight-off].} only when the base style has the weight @scheme[weight-off].}
} ]
Font styles, smoothing, underlining, and alignment work in an analogous manner. Font styles, smoothing, underlining, and alignment work in an analogous manner.
The possible values for @scheme[alignment-on] and @scheme[alignment-off] are: The possible values for @scheme[alignment-on] and @scheme[alignment-off] are:
@itemize{ @itemize[
@item{@indexed-scheme['base]} @item{@indexed-scheme['base]}
@item{@indexed-scheme['top]} @item{@indexed-scheme['top]}
@item{@indexed-scheme['center]} @item{@indexed-scheme['center]}
@item{@indexed-scheme['bottom]} @item{@indexed-scheme['bottom]}
} ]
The possible values for @scheme[style-on] and @scheme[style-off] are: The possible values for @scheme[style-on] and @scheme[style-off] are:
@itemize{ @itemize[
@item{@indexed-scheme['base]} @item{@indexed-scheme['base]}
@item{@indexed-scheme['normal]} @item{@indexed-scheme['normal]}
@item{@indexed-scheme['italic]} @item{@indexed-scheme['italic]}
@item{@indexed-scheme['slant]} @item{@indexed-scheme['slant]}
} ]
The possible values for @scheme[smoothing-on] and @scheme[smoothing-off] are: The possible values for @scheme[smoothing-on] and @scheme[smoothing-off] are:
@itemize{ @itemize[
@item{@indexed-scheme['base]} @item{@indexed-scheme['base]}
@item{@indexed-scheme['default]} @item{@indexed-scheme['default]}
@item{@indexed-scheme['partly-smoothed]} @item{@indexed-scheme['partly-smoothed]}
@item{@indexed-scheme['smoothed]} @item{@indexed-scheme['smoothed]}
@item{@indexed-scheme['unsmoothed]} @item{@indexed-scheme['unsmoothed]}
} ]
The possible values for @scheme[underlined-on] and @scheme[underlined-off] are: The possible values for @scheme[underlined-on] and @scheme[underlined-off] are:
@itemize{ @itemize[
@item{@scheme[#f] (acts like @scheme['base])} @item{@scheme[#f] (acts like @scheme['base])}
@item{@scheme[#t]} @item{@scheme[#t]}
} ]
The possible values for @scheme[size-in-pixels-on] and @scheme[size-in-pixels-off] are: 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[#f] (acts like @scheme['base])}
@item{@scheme[#t]} @item{@scheme[#t]}
} ]
The possible values for @scheme[transparent-text-backing-on] and The possible values for @scheme[transparent-text-backing-on] and
@scheme[transparent-text-backing-off] are: @scheme[transparent-text-backing-off] are:
@itemize{ @itemize[
@item{@scheme[#f] (acts like @scheme['base])} @item{@scheme[#f] (acts like @scheme['base])}
@item{@scheme[#t]} @item{@scheme[#t]}
} ]
The possible values for @scheme[weight-on] and @scheme[weight-off] are: The possible values for @scheme[weight-on] and @scheme[weight-off] are:
@itemize{ @itemize[
@item{@indexed-scheme['base]} @item{@indexed-scheme['base]}
@item{@indexed-scheme['normal]} @item{@indexed-scheme['normal]}
@item{@indexed-scheme['bold]} @item{@indexed-scheme['bold]}
@item{@indexed-scheme['light]} @item{@indexed-scheme['light]}
} ]
The family and face settings in a style delta are interdependent: 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 @item{When a delta's face is @scheme[#f] and its family is
@scheme['base], then neither the face nor family are modified by @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 @scheme[#f], so that the family setting prevails in choosing a
font.} font.}
} ]
@ -236,7 +236,7 @@ See also @method[style-delta% get-family].
'swiss 'modern 'symbol 'system)]{ 'swiss 'modern 'symbol 'system)]{
Returns the delta's font family. The possible values are Returns the delta's font family. The possible values are
@itemize{ @itemize[
@item{@indexed-scheme['base] --- no change to family} @item{@indexed-scheme['base] --- no change to family}
@item{@indexed-scheme['default]} @item{@indexed-scheme['default]}
@item{@indexed-scheme['decorative]} @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['modern] (fixed width)}
@item{@indexed-scheme['symbol] (Greek letters)} @item{@indexed-scheme['symbol] (Greek letters)}
@item{@indexed-scheme['system] (used to draw control labels)} @item{@indexed-scheme['system] (used to draw control labels)}
} ]
See also See also
@method[style-delta% get-face]. @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 @scheme[change-command] argument specifies how the delta is changed;
the possible values are: the possible values are:
@itemize{ @itemize[
@item{@scheme['change-nothing] --- reset all changes} @item{@scheme['change-nothing] --- reset all changes}
@item{@scheme['change-normal] --- turn off all styles and resizings} @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} @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-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-underline] --- set the underline status to either underlined or plain}
@item{@scheme['change-size-in-pixels] --- set the size interpretation to pixels or points} @item{@scheme['change-size-in-pixels] --- set the size interpretation to pixels or points}
} ]
} }

View File

@ -7,7 +7,7 @@ A @scheme[subarea<%>] is a containee @scheme[area<%>].
All @scheme[subarea<%>] classes accept the following named All @scheme[subarea<%>] classes accept the following named
instantiation arguments: instantiation arguments:
@itemize{ @itemize[
@item{@indexed-scheme[horiz-margin] --- default is @scheme[2] for @item{@indexed-scheme[horiz-margin] --- default is @scheme[2] for
@scheme[control<%>] classes and @scheme[group-box-panel%], @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[control<%>] classes and @scheme[group-box-panel%],
@scheme[0] for others; passed to @scheme[0] for others; passed to
@method[subarea<%> vert-margin]} @method[subarea<%> vert-margin]}
} ]

View File

@ -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 If the @techlink{position} @scheme[pos] is between
two snips, @scheme[direction] specifies which snip to return; @scheme[direction] two snips, @scheme[direction] specifies which snip to return; @scheme[direction]
can be any of the following: can be any of the following:
@itemize{ @itemize[
@item{@scheme['before-or-none] --- returns the snip before the @item{@scheme['before-or-none] --- returns the snip before the
@techlink{position}, or @scheme[#f] if @scheme[pos] is @scheme[0]} @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 @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} @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}] @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 caret may be different from the wordbreaks used to break lines. The
possible values of @scheme[reason] are: possible values of @scheme[reason] are:
@itemize{ @itemize[
@item{@scheme['caret] --- find a wordbreak suitable for moving the caret} @item{@scheme['caret] --- find a wordbreak suitable for moving the caret}
@item{@scheme['line] --- find a wordbreak suitable for breaking lines} @item{@scheme['line] --- find a wordbreak suitable for breaking lines}
@item{@scheme['selection] --- find a wordbreak suitable for selecting the closest word} @item{@scheme['selection] --- find a wordbreak suitable for selecting the closest word}
@item{@scheme['user1] --- for other (not built-in) uses} @item{@scheme['user1] --- for other (not built-in) uses}
@item{@scheme['user2] --- 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 The actual handling of @scheme[reason] is controlled by the current
wordbreak procedure; see @method[text% set-wordbreak-func]for 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| @|FCAMW|
To calculate lines, if the following are true: To calculate lines, if the following are true:
@itemize{ @itemize[
@item{the editor is not displayed (see @secref["tb:miaoverview"]),} @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} @item{the editor has never been viewed}
} ]
then this method ignores the editor's maximum width and any automatic 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 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: The possible values for @scheme[code] are:
@itemize{ @itemize[
@item{@scheme['home] --- go to start of file} @item{@scheme['home] --- go to start of file}
@item{@scheme['end] --- go to end of file} @item{@scheme['end] --- go to end of file}
@item{@scheme['right] --- move right} @item{@scheme['right] --- move right}
@item{@scheme['left] --- move left} @item{@scheme['left] --- move left}
@item{@scheme['up] --- move up} @item{@scheme['up] --- move up}
@item{@scheme['down] --- move down} @item{@scheme['down] --- move down}
} ]
If @scheme[extend?] is not @scheme[#f], the selection range is If @scheme[extend?] is not @scheme[#f], the selection range is
extended instead of moved. If anchoring is on (see @method[text% 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: The possible values for @scheme[kind] are:
@itemize{ @itemize[
@item{@scheme['simple] --- move one item or line} @item{@scheme['simple] --- move one item or line}
@item{@scheme['word] --- works with @scheme['right] or @scheme['left]} @item{@scheme['word] --- works with @scheme['right] or @scheme['left]}
@item{@scheme['page] --- works with @scheme['up] or @scheme['down]} @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} @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]. See also @method[text% set-position].
@ -1317,7 +1317,7 @@ Does nothing.
Handles the following: Handles the following:
@itemize{ @itemize[
@item{Delete and Backspace --- calls @method[text% delete].} @item{Delete and Backspace --- calls @method[text% delete].}
@ -1329,7 +1329,7 @@ Handles the following:
@scheme[(integer->char 255)] --- inserts the character into the @scheme[(integer->char 255)] --- inserts the character into the
editor.} editor.}
} ]
Note that an editor's @scheme[editor-canvas%] normally handles mouse Note that an editor's @scheme[editor-canvas%] normally handles mouse
wheel events (see also @method[editor-canvas% on-char] ). 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 dispatches to a caret-owning snip and detects a click on an
event-handling snip before calling to this method. event-handling snip before calling to this method.
@itemize{ @itemize[
@item{Clicking on a clickback region starts clickback tracking. See @item{Clicking on a clickback region starts clickback tracking. See
@method[text% set-clickback] for more information. Moving over a @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 @item{Dragging extends the selection, scrolling if possible when the
selection is dragged outside the editor's visible region.} 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: The legal formats are:
@itemize{ @itemize[
@item{@scheme['standard] --- a standard editor file} @item{@scheme['standard] --- a standard editor file}
@item{@scheme['text] --- a text 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} @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 @MonitorMethod[@elem{The file format of an editor} @elem{the
system in response to file loading and saving 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 The @scheme[seltype] argument is only used when the X Window System
selection mechanism is enabled. The possible values are: selection mechanism is enabled. The possible values are:
@itemize{ @itemize[
@item{@scheme['default] --- if this window has the keyboard focus @item{@scheme['default] --- if this window has the keyboard focus
and given selection is non-empty, make it the current X selection} 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 @item{@scheme['local] --- do not change the
current X selection} current X selection}
} ]
Setting the @techlink{position} is disallowed when the editor is internally Setting the @techlink{position} is disallowed when the editor is internally
locked for reflowing (see also @|lockdiscuss|). 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. Like @method[text% set-position], but a scrolling bias can be specified.
The possible values for @scheme[bias] are: 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-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['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['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] --- 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} @item{@scheme['end-only] --- only insure that the ending @techlink{position} is visible}
} ]
See also @method[text% scroll-to-position]. See also @method[text% scroll-to-position].

View File

@ -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 optional label displayed in front of it. There are two text field
styles: styles:
@itemize{ @itemize[
@item{A single line of text is visible, and a special control event @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 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 @item{Multiple lines of text are visible, and Enter is not handled
specially.} specially.}
} ]
Whenever the user changes the content of a text field, its callback Whenever the user changes the content of a text field, its callback
procedure is invoked. A callback procedure is provided as an 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 For a text field, the most useful methods of a @scheme[text%] object
are the following: are the following:
@itemize{ @itemize[
@item{@scheme[(send a-text #, @method[text% get-text])] returns @item{@scheme[(send a-text #, @method[text% get-text])] returns
the current text of the editor.} 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 @item{@scheme[(send a-text #, @method[text% insert] _str)] inserts
@scheme[_str] into the editor at the current caret position.} @scheme[_str] into the editor at the current caret position.}
} ]
} }

View File

@ -208,13 +208,13 @@ Returns @|void-const|.
The following rules determine, in order, whether and how @scheme[event] The following rules determine, in order, whether and how @scheme[event]
is handled: is handled:
@itemize{ @itemize[
@item{ @item{
If the window that currently owns the focus specifically handles the If the window that currently owns the focus specifically handles the
event, then @scheme[#f] is returned. The following describes window event, then @scheme[#f] is returned. The following describes window
types and the keyboard events they specifically handle: types and the keyboard events they specifically handle:
@itemize{ @itemize[
@item{@scheme[editor-canvas%] --- tab-exit is disabled (see @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 @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 @item{@scheme[list-box%] --- arrow key events and alphanumeric key
events when the Meta (X) or Alt (Windows) key is not pressed} events when the Meta (X) or Alt (Windows) key is not pressed}
}} ]}
@item{ @item{
If @scheme[event] is a Tab or arrow key event, the keyboard focus is 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{ @item{
Otherwise, @scheme[#f] is returned.} Otherwise, @scheme[#f] is returned.}
} ]
}} }}
@defmethod[(on-system-menu-char [event (is-a?/c key-event%)]) @defmethod[(on-system-menu-char [event (is-a?/c key-event%)])

View File

@ -134,12 +134,12 @@ The fundamental graphical element in the windowing toolbox is an
@deftech{area}. The following classes implement the different types @deftech{area}. The following classes implement the different types
of areas in the windowing toolbox: of areas in the windowing toolbox:
@itemize{ @itemize[
@item{@deftech{Containers} --- areas that can @item{@deftech{Containers} --- areas that can
contain other areas: contain other areas:
@itemize{ @itemize[
@item{@scheme[frame%] --- a @deftech{frame} is a top-level window @item{@scheme[frame%] --- a @deftech{frame} is a top-level window
that the user can move and resize.} 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[vertical-pane%], @scheme[horizontal-pane%], and
@scheme[grow-box-spacer-pane%].} @scheme[grow-box-spacer-pane%].}
}} ]}
@item{@deftech{Containees} --- areas that must be @item{@deftech{Containees} --- areas that must be
contained within other areas: contained within other areas:
@itemize{ @itemize[
@item{@scheme[panel%] --- a panel is a containee as well as @item{@scheme[panel%] --- a panel is a containee as well as
a container.} 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: @item{@deftech{Controls} --- containees that the user can manipulate:
@itemize{ @itemize[
@item{@scheme[message%] --- a @deftech{message} is a static @item{@scheme[message%] --- a @deftech{message} is a static
text field or bitmap with no user interaction.} 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 control (the user cannot change the value) for reporting an integer
value within a fixed range.} value within a fixed range.}
}} ]}
}} ]}
} ]
As suggested by the above listing, certain @tech{areas}, called As suggested by the above listing, certain @tech{areas}, called
@tech{containers}, manage certain other 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 areas, such as an adjustable graphical size). Instead, the menu
classes form a separate container--containee hierarchy: classes form a separate container--containee hierarchy:
@itemize{ @itemize[
@item{@deftech{Menu Item Containers} @item{@deftech{Menu Item Containers}
@itemize{ @itemize[
@item{@scheme[menu-bar%] --- a @deftech{menu bar} is a top-level @item{@scheme[menu-bar%] --- a @deftech{menu bar} is a top-level
collection of menus that are associated with a frame.} 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 top-level menu that is dynamically displayed in a canvas or
editor canvas.} editor canvas.}
}} ]}
@item{@deftech{Menu Items} @item{@deftech{Menu Items}
@itemize{ @itemize[
@item{@scheme[separator-menu-item%] --- a @deftech{separator} is @item{@scheme[separator-menu-item%] --- a @deftech{separator} is
an unselectable line in a menu or popup menu.} 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{@scheme[menu%] --- a menu is a menu item as well as a menu
item container.} item container.}
}} ]}
} ]
The following diagram shows the complete type hierarchy for the menu The following diagram shows the complete type hierarchy for the menu
system: system:
@ -395,7 +395,7 @@ The following subsections describe the container system in detail,
Each @tech{containee}, or child, has the following properties: Each @tech{containee}, or child, has the following properties:
@itemize{ @itemize[
@item{a @deftech{graphical minimum width} and a @deftech{graphical minimum height};} @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}.} @item{horizontal and vertical @tech{margins}.}
} ]
A @tech{container} arranges its children based on these four A @tech{container} arranges its children based on these four
properties of each @tech{containee}. A @tech{containee}'s parent 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: A container has the following properties:
@itemize{ @itemize[
@item{a list of (non-deleted) children containees;} @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.} @item{an alignment setting for positioning leftover space.}
} ]
These properties are factored into the container's calculation of its These properties are factored into the container's calculation of its
own size and the arrangement of its children. For a container that is 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 container (but a non-window containee cannot be @tech{hidden} or
@tech{deleted}): @tech{deleted}):
@itemize{ @itemize[
@item{A @deftech{hidden} child is invisible to the user, but space is @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 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 delete-child] or @method[area-container<%> add-child] method (which
calls the child's @method[window<%> show] method).} calls the child's @method[window<%> show] method).}
} ]
When a child is created, it is initially shown and non-deleted. A When a child is created, it is initially shown and non-deleted. A
deleted child is subject to garbage collection when no external 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: An input size specification is a list of four values:
@itemize{ @itemize[
@item{the child's minimum width;} @item{the child's minimum width;}
@item{the child's minimum height;} @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 horizontal stretchability (@scheme[#t] means stretchable, @scheme[#f] means not stretchable); and}
@item{the child's vertical stretchability.} @item{the child's vertical stretchability.}
} ]
For @method[area-container<%> place-children], an output For @method[area-container<%> place-children], an output
position and size specification is a list of four values: 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 horizontal position (relative to the parent);}
@item{the child's new vertical position;} @item{the child's new vertical position;}
@item{the child's new actual width;} @item{the child's new actual width;}
@item{the child's new actual height.} @item{the child's new actual height.}
} ]
The widths and heights for both the input and output include the The widths and heights for both the input and output include the
children's margins. The returned position for each child is 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 window. The window that receives the event depends on the current
state of the graphic display: state of the graphic display:
@itemize{ @itemize[
@item{@index['("mouse events" "overview")]{The} receiving window of a @item{@index['("mouse events" "overview")]{The} receiving window of a
mouse event is usually the window under the cursor when the mouse is 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 event, however, key-release events sometimes get dropped (e.g., due
to the appearance of a modal dialog).} to the appearance of a modal dialog).}
} ]
Controls, such as buttons and list boxes, handle keyboard and mouse Controls, such as buttons and list boxes, handle keyboard and mouse
events automatically, eventually invoking the callback procedure that 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 event queue, certain situations require a less rigid dialog with
the user: the user:
@itemize{ @itemize[
@item{@italic{Nested event handling:} In the process of handling an @item{@italic{Nested event handling:} In the process of handling an
event, it may be necessary to obtain further information from the 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 the application needs a separate event queue for each window, and a
separate event-handling thread for each event queue.} separate event-handling thread for each event queue.}
} ]
An @deftech{eventspace} is a context for processing GUI An @deftech{eventspace} is a context for processing GUI
events. Each eventspace maintains its own queue of events, and events 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 sorted according to their kind, from highest-priority (dispatched
first) to lowest-priority (dispatched last): first) to lowest-priority (dispatched last):
@itemize{ @itemize[
@item{The highest-priority events are high-priority events installed @item{The highest-priority events are high-priority events installed
with @scheme[queue-callback].} 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 @item{The lowest-priority events are low-priority events installed
with @scheme[queue-callback].} with @scheme[queue-callback].}
} ]
Although a programmer has no direct control over the order in which Although a programmer has no direct control over the order in which
events are dispatched, a programmer can control the timing of events are dispatched, a programmer can control the timing of

View File

@ -8,12 +8,12 @@ A @scheme[window<%>] object is an @scheme[area<%>] with a graphical
All @scheme[window<%>] classes accept the following named instantiation All @scheme[window<%>] classes accept the following named instantiation
arguments: arguments:
@itemize{ @itemize[
@item{@indexed-scheme[enabled] --- default is @scheme[#t]; passed to @item{@indexed-scheme[enabled] --- default is @scheme[#t]; passed to
@method[window<%> enable] if @scheme[#f]} @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} current platform's GUI toolbox. Cast this number from a C @tt{long}
to a platform-specific C type: to a platform-specific C type:
@itemize{ @itemize[
@item{Windows: @tt{HWND}} @item{Windows: @tt{HWND}}
@ -122,7 +122,7 @@ to a platform-specific C type:
@item{X: @tt{Widget*}} @item{X: @tt{Widget*}}
} ]
Some windows may not have a representation in the platform's GUI level, Some windows may not have a representation in the platform's GUI level,
in which case the result of this method is @scheme[0]. in which case the result of this method is @scheme[0].

View File

@ -19,7 +19,7 @@ Mitchell and McKim's principles for design by contract DbC are derived
we use a mostly applicative, we we use a mostly applicative, we
retain their terminology of ``classes'' and ``objects'': retain their terminology of ``classes'' and ``objects'':
@itemize{ @itemize[
@item{@bold{Separate queries from commands.} @item{@bold{Separate queries from commands.}
A @italic{query} returns a result but does not change the observable A @italic{query} returns a result but does not change the observable
@ -40,7 +40,7 @@ Mitchell and McKim's principles for design by contract DbC are derived
changes to the observable properties in terms of the basic queries.}} changes to the observable properties in terms of the basic queries.}}
@item{@bold{For each query and command, decide on suitable @item{@bold{For each query and command, decide on suitable
pre-condition contract.}}} pre-condition contract.}}]
Each of the following sections corresponds to a chapter in Each of the following sections corresponds to a chapter in
Mitchell and McKim's book (but not all chapters show up Mitchell and McKim's book (but not all chapters show up

View File

@ -104,7 +104,7 @@ point here is the formulation of the contract for the
The contract combinator @scheme[->*], demands several groups of contracts: The contract combinator @scheme[->*], demands several groups of contracts:
@itemize{ @itemize[
@item{The first one is a parenthesized group of contracts for all required @item{The first one is a parenthesized group of contracts for all required
arguments. In this example, we see two: @scheme[string?] and arguments. In this example, we see two: @scheme[string?] and
@scheme[natural-number/c]. } @scheme[natural-number/c]. }
@ -113,7 +113,7 @@ arguments. In this example, we see two: @scheme[string?] and
arguments: @scheme[char?]. } arguments: @scheme[char?]. }
@item{The last one is a single contract: the result of the function.} @item{The last one is a single contract: the result of the function.}
} ]
Note if a default value does not satisfy a contract, you Note if a default value does not satisfy a contract, you
won't get a contract error for this interface. In contrast won't get a contract error for this interface. In contrast
@ -358,7 +358,7 @@ scheme
acc) acc)
] ]
The second section is the export interface: @itemize{ The second section is the export interface: @itemize[
@item{@scheme[create] consumes an initial deposit and @item{@scheme[create] consumes an initial deposit and
produces an account. This kind of contract is just like a produces an account. This kind of contract is just like a
type in a statically typed language, except that statically type in a statically typed language, except that statically
@ -383,7 +383,7 @@ format string). The result is a contract.
@item{@scheme[deposit]'s contract has been reformulated using the @item{@scheme[deposit]'s contract has been reformulated using the
@scheme[->d] combinator. } @scheme[->d] combinator. }
} ]
The code in the first section defines all those pieces that The code in the first section defines all those pieces that
are needed for the formulation of the export contracts: are needed for the formulation of the export contracts:
@ -467,13 +467,13 @@ others):
[(s start end) (substring s start end)])) [(s start end) (substring s start end)]))
] ]
This version of @scheme[substring] has one of the following signature: This version of @scheme[substring] has one of the following signature:
@itemize{ @itemize[
@item{just a string, in which case it copies the string;} @item{just a string, in which case it copies the string;}
@item{a string and an index into the string, in which case it extracts the @item{a string and an index into the string, in which case it extracts the
suffix of the string starting at the index; or } suffix of the string starting at the index; or }
@item{a string a start index and an end index, in which case it extracts the @item{a string a start index and an end index, in which case it extracts the
fragment of the string between the two indices. } fragment of the string between the two indices. }
} ]
The contract for such a function is formed with the @scheme[case->] The contract for such a function is formed with the @scheme[case->]
combinator, which combines as many functional contracts as needed: combinator, which combines as many functional contracts as needed:

View File

@ -37,13 +37,13 @@ scheme
] ]
It exports two functions: It exports two functions:
@itemize{ @itemize[
@item{@scheme[create]: The function's contract says that it consumes two @item{@scheme[create]: The function's contract says that it consumes two
arguments, a string and a number, and it promises nothing about the return value. } arguments, a string and a number, and it promises nothing about the return value. }
@item{@scheme[deposit]: The function's contract demands from the client modules @item{@scheme[deposit]: The function's contract demands from the client modules
that they apply it to numbers. It promises nothing about the return value. }} that they apply it to numbers. It promises nothing about the return value. }]
If a ``client'' module were to apply @scheme[deposit] to If a ``client'' module were to apply @scheme[deposit] to
@scheme['silly], it would violate the contract. The @scheme['silly], it would violate the contract. The

View File

@ -44,7 +44,7 @@ Meanwhile, in addition to defining @scheme[_struct-id],
@scheme[define-struct] also defines a number of identifiers that are @scheme[define-struct] also defines a number of identifiers that are
built from @scheme[_struct-id] and the @scheme[_field-id]s: built from @scheme[_struct-id] and the @scheme[_field-id]s:
@itemize{ @itemize[
@item{@schemeidfont{make-}@scheme[_struct-id] : a @item{@schemeidfont{make-}@scheme[_struct-id] : a
@deftech{constructor} function that takes as many arguments as @deftech{constructor} function that takes as many arguments as
@ -74,7 +74,7 @@ built from @scheme[_struct-id] and the @scheme[_field-id]s:
@scheme[#:super], as discussed later in @scheme[#:super], as discussed later in
@secref["struct-options"]).} @secref["struct-options"]).}
} ]
A @scheme[define-struct] form places no constraints on the kinds of A @scheme[define-struct] form places no constraints on the kinds of
values that can appear for fields in an instance of the structure values that can appear for fields in an instance of the structure
@ -368,7 +368,7 @@ or existing examples. Overall, the different options for structure
types offer a spectrum of possibilities from more abstract to more types offer a spectrum of possibilities from more abstract to more
convenient: convenient:
@itemize{ @itemize[
@item{@tech{Opaque} (the default) : Instances cannot be inspected or @item{@tech{Opaque} (the default) : Instances cannot be inspected or
forged without access to the structure-type declaration. As forged without access to the structure-type declaration. As
@ -394,7 +394,7 @@ convenient:
manufacture instances directly. The instance cannot have a manufacture instances directly. The instance cannot have a
@tech{constructor guard} or @tech{properties}.} @tech{constructor guard} or @tech{properties}.}
} ]
Since the expression reader can generate @tech{prefab} instances, they Since the expression reader can generate @tech{prefab} instances, they
are useful when convenient @tech{serialization} is more important than are useful when convenient @tech{serialization} is more important than

Some files were not shown because too many files have changed in this diff Show More