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
recognized symbolically:
@itemize{
@itemize[
@argtype[@scheme[bool] "any value" @cpp{int}
@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
and identified as type @scheme[_bstr]}]
}
]
The @scheme[return-type] must be @schemeidfont{void} or one of the
@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
Befehle bewegt werden:
@itemize{
@itemize[
@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[(turn n)] Dreht die Schildkröte um n Grad im Uhrzeigersinn.}
}
]
Wir stellen jetzt ein Teachpack für DrScheme vor, mit dessen Hilfe
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]
Specifically, it sets these parameters:
@itemize{
@itemize[
@item{ @scheme[current-namespace] has been set to a newly
created empty namespace. This namespace has the following modules
copied (with @scheme[namespace-attach-module])
from DrScheme's original namespace:
@itemize{@item{@scheme['mzscheme]}@item{@scheme['mred]}}
@itemize[@item{@scheme['mzscheme]}@item{@scheme['mred]}]
}@item{
@scheme[read-curly-brace-as-paren]
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]
is initialized with all of the snipclasses in DrScheme's eventspace's snip-class-list.
}}})
}]})
(proc-doc/names
drscheme:eval:get-snip-classes
@ -235,12 +235,12 @@ all of the names in the tools library, for use defining keybindings
It initializes the
user's eventspace's main thread with several parameters:
@itemize{
@itemize[
@item{ @scheme[current-custodian] is set to a new custodian.
}@item{
In addition, it calls
@scheme[drscheme:eval:set-basic-parameters].
}}
}]
The @scheme[language-settings] argument is the current
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
platforms-specific:
@itemize{
@itemize[
@item{Unix: @scheme['cc] or @scheme['gcc]}
@item{Windows: @scheme['gcc], @scheme['msvc], or @scheme['borland]}
@item{MacOS: @scheme['cw]}
}}
]}
@defproc[(get-standard-compilers) (listof symbol?)]{

View File

@ -19,7 +19,7 @@ MzScheme's limited stack-trace reporting.
@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
@schemeblock[(require errortrace)]
@ -33,7 +33,7 @@ MzScheme's limited stack-trace reporting.
@item{When an exception occurs, the exception handler prints
something like a stack trace, most recent contexts first.}
}
]
The @schememodname[errortrace] module is strange; don't import it
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
so far:
@itemize{
@itemize[
@item{the number of times a procedure was called.}
@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)
recorded if @scheme[profile-paths-enabled] is set to @scheme[#t].
Each call path is a pair of
@itemize{
@itemize[
@item{a count (the number of times the path occurred), and}
@item{a list containing two-element lists. Each two-element list
contains
@itemize{
@itemize[
@item{the calling procedure's name or source expression,
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.}
}}
]}
@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:
@itemize{
@itemize[
@item{@scheme['init] : no images or controls have been added to the
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}
}
]
@(include-extracted "../gif.ss")

View File

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

View File

@ -302,29 +302,29 @@ Removes @scheme[card] from the table.}
indicated by @scheme[which]. The @scheme[action] argument must be one
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.}
@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
overlapping with the card). The on-top-of relation
is closed transitively.}
@item[@scheme['drag-raise/above]]{ --- like @scheme['drag/above],
@item{@scheme['drag-raise/above] --- like @scheme['drag/above],
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
overlapping with the card). The underneath relation
is closed transitively.}
@item[@scheme['drag-raise/below]]{ --- like @scheme['drag/below],
@item{@scheme['drag-raise/below] --- like @scheme['drag/below],
but raises.}
}
]
The initial settings are: @scheme['drag-raise/above] for
@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
to a helper function:
@itemize{
@itemize[
@item{block the clicked cell (@scheme[block-cell/world]),}
@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],
first checking to see if the mouse event corresponds to a
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
@itemize{
@itemize[
@item{@scheme[body]}
@item{@scheme[head]}
}
]
@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.
The available secondary partitionings are:
@itemize{
@itemize[
@item{@scheme[bound-identifier=?]}
@item{@scheme[module-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
context by requiring the same module.
}
}
]
@subsection{Properties}
When the properties pane is shown, it displays properties of the
selected syntax object. The properties pane has two tabbed pages:
@itemize{
@itemize[
@item{@bold{Term}:
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
@scheme[syntax-property]) carried by the syntax object.
}
}
]
@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:
@itemize{
@itemize[
@item{Down: move to the next entry at the current level (skipping lower levels).}
@ -24,7 +24,7 @@ The list control supports the following default keystrokes:
@item{Return: open/close the current selected level (only valid for lists).}
}
]
@local-table-of-contents[]

View File

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

View File

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

View File

@ -138,7 +138,7 @@ an additional keyword tag before the binding variables.
Each @scheme[clause] has one of the following forms:
@itemize{
@itemize[
@item{@scheme[(val target expr)] : Binds @scheme[target]
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
binding any variables.}
}
]
The clauses bind left-to-right. When a @scheme[target] is
@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
following:
@itemize{
@itemize[
@item{A literal string that specifies a path to include, parsed
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
include.}
}
]
If @scheme[path-spec] specifies a relative path to include, the path
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
declared, each with an @scheme[_id] to bind:
@itemize{
@itemize[
@item{@as-index{@scheme[#:rest]} --- The variable is bound to the
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
@scheme[#:other-keys+body] is the same as @scheme[#:other-keys].)}
}
]
In the following example, all rest-like arguments are used and have different
bindings:
@ -252,10 +252,10 @@ bindings:
Note that the following invariants always hold:
@itemize{
@itemize[
@item{@scheme[_rest] = @scheme[(append _all-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
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
keywords that serve as mode flags to control error reporting.
@itemize{
@itemize[
@item{@as-index{@scheme[#:allow-other-keys]} --- The keyword-value
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
above, ensuring that calls are as restricted as possible.}
}
]
These above mode markers are rarely needed, because the default modes
are determined by the declared rest-like arguments:
@itemize{
@itemize[
@item{The default is to allow other keys if a @scheme[#:rest],
@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
(and a @scheme[#:body] argument requires allowing them).}
}
]
Here's an alternate specification, which maps rest-like arguments to
the behavior that they imply:
@itemize{
@itemize[
@item{@scheme[#:rest]: Everything is allowed (a body, other keys,
and duplicate keys);}
@ -421,7 +421,7 @@ the behavior that they imply:
overridden by an explicit @scheme[#:allow-...] or a
@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
thread, restarting performs the following actions:
@itemize{
@itemize[
@item{The @scheme[init-namespace] procedure is called with no
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[restart-mzscheme] is set to @scheme[#t].}
}
]
Before evaluating command-line arguments, an exit handler is installed
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
with several differences:
@itemize{
@itemize[
@item{The @scheme[language] argument can be one of a fixed set of
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
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.
The @scheme[err-handler] argument can be:
@itemize{
@itemize[
@item{@scheme[#f] (the default) which means that errors are not
caught;}
@item{a one-argument procedure, which will be used with an exception
(when an error occurs) and its result will be returned}
@item{a thunk, which will be used to produce a result.}
}}
]}
@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]
must one of the following:
@itemize{
@itemize[
@item{@indexed-scheme['weak] --- creates a hash table with
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
@scheme[make-hasheqv] or @scheme[make-weak-hasheqv].}
}
]
By default, key comparisons use @scheme[eq?] (i.e., the hash table 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
connections. Each mapping is a list of three elements:
@itemize{
@itemize[
@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.}
}
]
Currently, the only proxiable scheme is @scheme["http"]. The default
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,
but
@itemize{
@itemize[
@item{for Windows, the PLT Scheme distribution for Windows includes
the necessary DLLs.}
@ -26,7 +26,7 @@ but
@item{for Unix, @filepath{libssl.so} and @filepath{libcrypto.so} are
likely to be installed on your machine, already.}
}
]
@defthing[ssl-available? boolean?]{
@ -106,13 +106,13 @@ section @secref["cert-procs"] below for more information on
certificates.
The @scheme[protocol] must be one of the following:
@itemize{
@itemize[
@item{@scheme['sslv2-or-v3] : SSL protocol versions 2 or 3, as
appropriate (this is the default)}
@item{@scheme['sslv2] : SSL protocol version 2}
@item{@scheme['sslv3] : SSL protocol version 3}
@item{@scheme['tls] : the TLS protocol version 1}
}
]
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!]

View File

@ -60,7 +60,7 @@ style lexer and parser generators.
An @scheme[re] is matched as follows:
@itemize{
@itemize[
@item{@scheme[id] --- expands to the named @deftech{lexer abbreviation};
abbreviations are defined via @scheme[define-lex-abbrev] or supplied by modules
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].}
@item{@scheme[(id datum ...)] --- expands the @deftech{lexer macro} named @scheme[id]; macros
are defined via @scheme[define-lex-trans].}
}
]
Note that both @scheme[(concatenation)] and @scheme[""] match the
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
are a few examples, using @scheme[:] prefixed SRE syntax:
@itemize{
@itemize[
@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
usually not correct to place a @scheme[:*] around a
@scheme[complement].}
}
]
The following binding have special meaning inside of a lexer
action:
@itemize{
@itemize[
@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[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)))]
will cause the value of the recursive call to be returned without
wrapping position around it.}
}
]
The lexer raises an exception @scheme[(exn:read)] if none of the
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
cases:
@itemize{
@itemize[
@item{The @scheme[(eof)] rule is matched when the input port
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,
@scheme[eof-object], or @scheme[special-comment] structure. If
no @scheme[(special)] rule is present, the lexer returns
@scheme[(void)].}}
@scheme[(void)].}]
End-of-files, specials, special-comments and special-errors can
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
present:
@itemize{
@itemize[
@item{@schemeblock0[(grammar (non-terminal-id
((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
reduce/reduce conflicts.}
}
]
The result of a @scheme[parser] expression with one @scheme[start]
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)
@item{@(seclink name (exec name)): @desc})
@itemize{
@itemize[
@cmd["create"]{create a PLaneT archive from a directory}
@cmd["install"]{download and install a given package}
@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["open"]{unpack the contents of the given package}
@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
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>}.
@exec{<option>} is one of:
@itemize{
@itemize[
@item{@exec{-f, --force}: force a package to be created even if its info.ss file contains
errors.}}
errors.}]
@subsection[#:tag "install"]{@exec{install}}
@ -358,9 +358,9 @@ Remove the specified package from the local cache, optionally also removing its
distribution file.
@exec{<option>} is one of:
@itemize{
@itemize[
@item{@exec{-e, --erase}: also remove the package's distribution file from the
uninstalled-package cache}}
uninstalled-package cache}]
@subsection[#:tag "show"]{@exec{show}}
@ -369,10 +369,10 @@ Usage:
List the packages installed in the local cache.
@exec{<option>} is one of:
@itemize{
@itemize[
@item{@exec{-p, --packages}: show packages only (default)}
@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}}
@ -694,7 +694,7 @@ already-existing package:
PLaneT can distribute whatever programs you write, but keep
these guidelines in mind as you write:
@itemize{
@itemize[
@item{Organize your code into modules. Since the PLaneT client is
integrated into the @scheme[require] form, it works best if your code
is arranged into modules.}
@ -709,7 +709,7 @@ instead of
@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}
@ -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
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
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:
@itemize{
@itemize[
@item{@scheme['devtools]: Development Tools}
@item{@scheme['net]: Networking and Protocols}
@item{@scheme['media]: Graphics and Audio}
@ -793,7 +793,7 @@ The valid categories are:
@item{@scheme['ui]: Textual and Graphical User Interface}
@item{@scheme['metaprogramming]: Metaprogramming Tools}
@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
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
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
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
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
new package. This means that at a minimum, a backwards compatible
update should:
@itemize{
@itemize[
@item{Contain all the same Scheme source files in that the previous
version contained in directories intended for public access}
@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
"scribblings/guide/guide.scrbl") "contracts" )), provide it
with a contract that is at least as permissive as the previous
contract}}
contract}]
A backwards-compatible upgrade may, however:
@itemize{
@itemize[
@item{Change any behavior that
reasonable consumers of your package would not consider guaranteed
(@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
@filepath{private} are considered private and should not be relied
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
all of them may be enforced programmatically. Ultimately, though, no
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
render a variety of other data in several ways:
@itemize{
@itemize[
@item{Discrete data, such as
@ -73,13 +73,13 @@ render a variety of other data in several ways:
can be interpreted in several ways:
@itemize{
@itemize[
@item{As points: @scheme[(plot (points _data))]}
@item{As error data: @scheme[(plot (error-bars _data))]}
}
]
}
@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
@itemize{
@itemize[
@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)))
]
}
}
]
or in a 3d box
@itemize{
@itemize[
@item{Displaying only the top of the surface
@ -124,10 +124,10 @@ render a variety of other data in several ways:
(plot3d (surface 3dfun))
]
}
}
]
}
}
]
@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:
@itemize{
@itemize[
@item{Set up the independent and dependent variable data. The first
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)
]
}
}
]
A more realistic example can be found in
@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
because doing this:
@itemize{
@itemize[
@item{the Scheme process will need to allocating big strings which makes
this unfeasible for big files,}
@ -107,7 +107,7 @@ because doing this:
@item{special treatment for newlines in these strings will become expensive.}
}
]
(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
way this transformation happens. Some of these transformation
@itemize{
@itemize[
@item{Skipping input:
@ -142,7 +142,7 @@ way this transformation happens. Some of these transformation
@verbatim[#:indent 2]|{
shell output
Some preprocessed text
123*456*789 = 44253432}
123*456*789 = 44253432
}|}
@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
format.}
}
]
@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
@scheme[show] works in the following way:
@itemize{
@itemize[
@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
after printing values.}
}
]
@section[#:tag "mzpp-lib"]{Provided bindings}

View File

@ -68,9 +68,9 @@ generates this output:
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
is then printed.}
@ -82,11 +82,11 @@ An explanation of a few lines:
@item{@litchar|{@(/ (read) 3)12}| --- demonstrates that the Scheme
code can do anything with the current input.}
}
]
The complete behavior of the command dispatcher follows:
@itemize{
@itemize[
@item{If the marker sequence is followed by itself, then it is simply
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
processed as follows:
@itemize{
@itemize[
@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{When this processing is done, and printable results have been re-added
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
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
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
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]
is rarely needed in Scheme.}
}
]
Remember that when procedures are used, generated output is not
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
directly, and it should receive three arguments:
@itemize{
@itemize[
@item{The name for the new command (the contents of this argument is
converted to a string),}
@ -386,7 +386,7 @@ Dispatching-related bindings:
@item{Arbitrary text, with @bold{textual} instances of the variables that
denote places they are used.}
}
]
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
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
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.}
}
]
If an executed command fails with a return status different than 0, the
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
numbers and labels is as follows:
@itemize{
@itemize[
@item{@tt{A} --- the name of the function that this node represents,
followed by the source location for the function if it is known.
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
@scheme[edge-callee-time] fields; see the documentation for further
details.}
}
]
The function has a few keyword arguments to customize its output:
@itemize[

View File

@ -179,7 +179,7 @@ are members of the named package.
@section[#:tag "advanced:import"]{@scheme[import]}
@elemtag['(adv "import")]
@itemize{
@itemize[
@item{@(scheme import Name (code:comment ""))
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.}
}
]
@section[#:tag "advanced:class"]{@scheme[class]}
@elemtag['(adv "class")]
@itemize{
@itemize[
@item{@(scheme class Id { Member ...})
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.
}
}
]
@section[#:tag "advanced:iface"]{@scheme[interface]}
@elemtag['(adv "iface")]
@itemize{
@itemize[
@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
inherits the method signatures of the interfaces specified in the extends list.
}
}
]
@elemtag['(adv "sig")]
@ -284,7 +284,7 @@ by all members of the same package.
@elemtag['(adv "field")]
@itemize{
@itemize[
@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
@ -303,7 +303,7 @@ by all members of the same package.
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}.
}
}
]
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
@ -354,7 +354,7 @@ is unique. Each constructor may set its own @elemref['(adv "mods")]{access}. A c
@elemtag['(adv "stmt")]{}
@itemize{
@itemize[
@item{@elemtag['(adv "asgn")] @(scheme Expression = Expression (code:comment ""))
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
are followed by ';'.
}
}
]
@section[#:tag "advanced:arrayInt"]{@scheme[ArrayInit]}
@ -469,7 +469,7 @@ with their values specified by the ArrayInit.
@section[#:tag "advanced:expr"]{@scheme[Expression]}
@itemize{
@itemize[
@item{@elemtag['(adv "op")]@(scheme Expression Op Expression)
@ -611,4 +611,4 @@ with their values specified by the ArrayInit.
@item{@(scheme false)}
}
]

View File

@ -78,7 +78,7 @@ An @(scheme Id) is a sequence of alphanumeric characters, _, and $.
@section{@scheme[import]}
@elemtag['(beg "import")]
@itemize{
@itemize[
@item{@(scheme import Name (code:comment ""))
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.}
}
]
@section{@scheme[class]}
@elemtag['(beg "class")]
@itemize{
@itemize[
@item{@(scheme class Id { Member Member ...})
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}.
Any @elemref['(beg "sig")]{method} defined by the interface must be a member of this class.
}
}
]
@section{@scheme[interface]}
@ -124,7 +124,7 @@ return type, and argument types.
@elemtag['(beg "field")]
@itemize{
@itemize[
@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
@ -139,7 +139,7 @@ return type, and argument types.
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.
}
}
]
@section{@scheme[Method]}
@ -167,7 +167,7 @@ The initialization statements pass the value provided to the constructor to the
@section{@scheme[Statement]}
@elemtag['(beg "stmt")]
@itemize{
@itemize[
@item{@elemtag['(beg "if")] @(scheme if (Expression) { Statement } else { Statement })
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.
}
}
]
@section{@scheme[Expression]}
@itemize{
@itemize[
@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 false)}
}
]

View File

@ -116,7 +116,7 @@ An @(scheme Id) is a sequence of alphanumeric characters, _, and $.
@section[#:tag "intermedAcc:import"]{@scheme[import]}
@elemtag['(inta "import")]
@itemize{
@itemize[
@item{@(scheme import Name (code:comment ""))
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.}
}
]
@section[#:tag "intermedAcc:class"]{@scheme[class]}
@elemtag['(inta "class")]
@itemize{
@itemize[
@item{@(scheme class Id { Member ...})
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.
}
}
]
@section[#:tag "intermedAcc:iface"]{@scheme[interface]}
@elemtag['(inta "iface")]
@itemize{
@itemize[
@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
inherits the method signatures of the interfaces specified in the extends list.
}
}
]
@elemtag['(inta "sig")]
@ -219,7 +219,7 @@ by the containing class. A protected member can be accessed by the containing cl
@elemtag['(inta "field")]
@itemize{
@itemize[
@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
@ -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}.
This field will have the declared type and the value of the evaluated @(scheme Expression).
}
}
]
@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")]{}
@itemize{
@itemize[
@item{@elemtag['(inta "if")] @(scheme if (Expression) { Statement ... } else { Statement ...})
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
are followed by ';'.
}
}
]
@section[#:tag "intermedAcc:expr"]{@scheme[Expression]}
@itemize{
@itemize[
@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)}
}
]

View File

@ -109,7 +109,7 @@ An @(scheme Id) is a sequence of alphanumeric characters, _, and $.
@section[#:tag "intermed:import"]{@scheme[import]}
@elemtag['(int "import")]
@itemize{
@itemize[
@item{@(scheme import Name (code:comment ""))
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.}
}
]
@section[#:tag "intermed:class"]{@scheme[class]}
@elemtag['(int "class")]
@itemize{
@itemize[
@item{@(scheme class Id { Member ...})
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.
}
}
]
@section[#:tag "intermed:iface"]{@scheme[interface]}
@elemtag['(int "iface")]
@itemize{
@itemize[
@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
inherits the method signatures of the interfaces specified in the extends list.
}
}
]
@elemtag['(int "sig")]
@ -204,7 +204,7 @@ all signatures are by default abstract.
@elemtag['(int "field")]
@itemize{
@itemize[
@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
@ -217,7 +217,7 @@ all signatures are by default abstract.
current class using an @elemref['(int "acc")]{expression}.
This field will have the declared type and the value of the evaluated @(scheme Expression).
}
}
]
@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]}
@elemtag['(int "stmt")]
@itemize{
@itemize[
@item{@elemtag['(int "if")] @(scheme if (Expression) { Statement ... } else { Statement ...})
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
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]}
@itemize{
@itemize[
@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)}
}
]

View File

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

View File

@ -48,7 +48,7 @@ other modules.
To run a top-level program, either:
@itemize{
@itemize[
@item{Use the @exec{plt-r6rs} executable, supplying the file that
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
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
applied to each symbol before concatenating them:
@itemize{
@itemize[
@item{The symbol is encoded using UTF-8, and the resulting bytes are
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
symbol element.}
}
]
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"))
..._id])
@itemize{
@itemize[
@item{The @defpattech[any] @pattern matches any sepxression.
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['()].
}
}
]
@defform*[[(redex-match lang #, @|ttpattern| any)
(redex-match lang #, @|ttpattern|)]]{
@ -410,7 +410,7 @@ stands for repetition unless otherwise indicated):
,@scheme-expression
(code:line ... (code:comment "literal ellipsis"))])
@itemize{
@itemize[
@item{A term written @scheme[_identifier] is equivalent to the
corresponding symbol, unless the identifier is bound by
@ -437,7 +437,7 @@ them.}
@item{A term written as a literal boolean or a string
produces the boolean or the string.}
}
]
@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
explanation of logical-space):
@itemize{
@itemize[
@item{
If there are two adjacent lws, then the logical
space between them is filled with whitespace.}
@ -1903,7 +1903,7 @@ explanation of logical-space):
the logical space between the two lws is
absorbed by a new lw that renders using no
actual space in the typeset version.
}}
}]
}

View File

@ -5,7 +5,7 @@
The following people have contributed to SchemeUnit:
@itemize{
@itemize[
@item{Robby Findler pushed me to release version 3}
@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
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
example, to enable students to play hangman, we supply a teachpack that
@itemize{
@itemize[
@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.}
}
]
All these tasks are beyond students in the third week and/or impose
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:
@itemize{
@itemize[
@item{@deftech{Plain-text file format} --- All text editors can read
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
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
original file's name:
@itemize{
@itemize[
@item{Under Unix and Mac OS X, a @filepath{~} is added to the end of
the file's name.}
@ -54,7 +54,7 @@ original file's name:
@item{Under Windows, the file's extension is replaced with
@filepath{.bak}.}
}
]
Every five minutes, DrScheme checks each open file. If any file is
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
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
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
to make the autosave filename unique.}
}
]
If the definitions window is modified and there is no current file,
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
annotations:
@itemize{
@itemize[
@item{@bold{Syntactic Highlighting:} Imported variables and locally
defined variables are highlighted with color
@ -143,7 +143,7 @@ annotations:
imported from a module shows the module that it is imported
from in a status line at the bottom of the frame.}
}
]
The @as-index{@onscreen{Run} button} evaluates the program in the
@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
non-Scheme languages. You specify a language in one of two ways:
@itemize{
@itemize[
@item{Select the @menuitem["Language" "Choose Language..."] menu
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
starting the definitions-window content with @hash-lang[].}
}
]
The latter method, @drlang{Module} with @hash-lang[], is the recommend
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
brackets are not automatically changed to parentheses:
@itemize{
@itemize[
@item{If the square bracket is after @scheme[cond]-like keyword,
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,
comment, character, or symbol.}
}
]
The upshot of DrScheme's help is that you can always use the
(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:
@itemize{
@itemize[
@item{The @as-index{@onscreen{Go} button} is enabled
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
to the context or raising an unhandled exception.}
}
]
If the program is running (not paused), then only the @as-index{Pause}
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
additional actions:
@itemize{
@itemize[
@item{Hovering the mouse cursor over a parenthesis may reveal a
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
enter a new value for the variable.}
}
]
@subsection{Stack View Pane}
@ -734,7 +734,7 @@ engine, while other languages support only one type or engine.
Each type has advantages and disadvantages:
@itemize{
@itemize[
@item{A @deftech{launcher executable} uses the latest version of
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
yours.}
}
]
In general, DrScheme's @drlang{Module} language gives you the most
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
without a @hash-lang[] prefix:
@itemize{
@itemize[
@item{The @as-index{@drlang{R5RS} language} contains those
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
@scheme[load].}
}
]
@; ----------------------------------------
@ -61,7 +61,7 @@ without a @hash-lang[] prefix:
Five of DrScheme's languages are specifically designed for teaching:
@itemize{
@itemize[
@item{The @as-index{@drlang{Beginning Student} language} is a small
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
state.}
}
]
The teaching languages are different from conventional Scheme in a number
of ways:
@itemize{
@itemize[
@item{@defterm{Case-sensitive identifiers and symbols} --- In a
case-sensitive language, the variable names @scheme[x] and
@ -232,13 +232,13 @@ of ways:
languages, function definitions are not allowed in the
interactions window.}
}
]
The teaching languages also deviate from traditional Scheme in
printing values. Different printing formats can be selected for any
language through the detail section of language-selection dialog.
@itemize{
@itemize[
@item{@defterm{Constructor-style output} --- See
@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 ---
@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
experimentation. There are four teaching based languages:
@itemize{
@itemize[
@item{The @as-index{@drlang{ProfessorJ Beginner} language} is a small
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
constructs, and package specifications.}
}
]
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
features, as well as a set of constructs designed for the development of
unit tests}
@item{The @as-index{@drlang{ProfessorJ Java + dynamic} language} extends the
ProfessorJ Full language with a dynamic type and the ability to import Scheme
libraries directly, for developing programs that use both languages.}
}
]
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

View File

@ -13,7 +13,7 @@
@section{@onscreen{File}}
@itemize{
@itemize[
@item{@defmenuitem{New} Creates a new DrScheme window.}
@ -40,7 +40,7 @@
window. Subsequent saves write to the newly-selected file.}
@item{@defmenuitem{Save Other} Contains these sub-items
@itemize{
@itemize[
@item{@defmenuitem{Save Definitions As Text...} Like @onscreen{Save
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
plain-text format.}
}}
]}
@item{@defmenuitem{Log Definitions and Interactions...} Starts a
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
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
blinking caret. Each window maintains its own Undo and Redo history.
@itemize{
@itemize[
@item{@defmenuitem{Undo} Reverses an editing action. Each window
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
window at the bottom of the frame and moves the insertion
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
in the search window.}
@ -153,7 +151,7 @@ the search string with the replace string.}
case-sensitive and case-insensitive search.}
@item{@defmenuitem{Keybindings}
@itemize{
@itemize[
@item{@defmenuitem{Show Active Keybindings} Shows all of the
keybindings available in the current window.}
@ -163,14 +161,14 @@ case-sensitive and case-insensitive search.}
Scheme-definitions of keybindings. See @secref["defining-shortcuts"]
for more information.}
}}
]}
@item{@defmenuitem{Complete Word} Completes the word at the
insertion point, using the manuals as a source of completions.}
@item{@defmenuitem{Preferences...} Opens the preferences dialog. See
@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
appears at any time.
@itemize{
@itemize[
@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{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 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 Hidden} Hides the toolbar entirely.}}}
@item{@defmenuitem{Toolbar Hidden} Hides the toolbar entirely.}]}
@item{@defmenuitem{Show Log} Shows 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
window.}
}
]
Note: whenever a program is run, the interactions window is made
visible if it is hidden.
@ -250,7 +248,7 @@ Note: whenever a program is run, the interactions window is made
@section{@onscreen{Language}}
@itemize{
@itemize[
@item{@defmenuitem{Choose Language...} Opens a dialog for selecting
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
interactions window.}
}
]
In addition to the above items, a menu item for each teachpack that
clears only the corresponding teachpack.
@ -278,7 +276,7 @@ clears only the corresponding teachpack.
@section[#:tag "menu:scheme"]{@onscreen{Scheme}}
@itemize{
@itemize[
@item{@defmenuitem{Run} Resets the interactions window and runs the
program in the definitions window.}
@ -348,11 +346,11 @@ background that signals the source location of an error.}
the @onscreen{Disable Tests} menu item.
}
}
]
@section{@onscreen{Insert}}
@itemize{
@itemize[
@item{@defmenuitem{Insert Comment Box} Inserts a box that is ignored
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
boxes that produce picture values.}
}
]
@; ----------------------------------------
@section{@onscreen{Windows}}
@itemize{
@itemize[
@item{@defmenuitem{Bring Frame to Front...} Opens a window that lists
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
focused window and the one that most recently had the focus.}
}
]
Additionally, after the above menu items, this menu contains
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}}
@itemize{
@itemize[
@item{@defmenuitem{Help Desk} Opens the Help Desk. This is the clearing
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
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:
@itemize{
@itemize[
@item{@onscreen{Indenting}
@ -40,7 +40,7 @@ The preferences dialog consists of several panels.
@item{@onscreen{Square bracket}
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
how many sub-expressions are skipped before square brackets are
started.
@ -50,7 +50,7 @@ The preferences dialog consists of several panels.
@item{@onscreen{General}
@itemize{
@itemize[
@item{@PrefItem{Number of recent items} --- controls the
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.
}
}}
]}
@item{@onscreen{Scheme}
@itemize{
@itemize[
@item{@PrefItem{Highlight between matching parens} --- If checked, the
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.}
@item{@PrefItem{Correct parens} --- If checked, the editor
automatically converts a typed @litchar{)} to @litchar{]} to
match @litchar{[}, or it converts a typed @litchar{]} to
@litchar{)} to match @litchar{(}. Also, the editor changes
typed @litchar{[} to match the context (as explained in
automatically converts a typed @litchar[")"] to @litchar["]"] to
match @litchar["["], or it converts a typed @litchar["]"] to
@litchar[")"] to match @litchar["("]. Also, the editor changes
typed @litchar["["] to match the context (as explained in
@secref["editor"]).}
@item{@PrefItem{Flash paren match} --- If checked, typing a closing
parenthesis, square bracket, or quotation mark flashes the
matching open parenthesis/bracket/quote.}
}}
]}
}
]
@section{@onscreen{Warnings}}
@itemize{
@itemize[
@item{@PrefItem{Ask before changing save format} --- If checked,
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
whether a newer version of DrScheme is available.}
}
]
@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
specification is required at minimum:
@itemize{
@itemize[
@item{If a C type @scheme[bytes-or-type] is given, its size is used
to the block allocation size.}
@ -257,7 +257,7 @@ specification is required at minimum:
@indexed-scheme['failok] flag is given, then
@cpp{scheme_malloc_fail_ok} is used to wrap the call.}
}
]
If no mode is specified, then @scheme['nonatomic] allocation is used
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
treated:
@itemize{
@itemize[
@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.}
@ -506,7 +506,7 @@ treated:
argument's value.}
@item{@scheme[post:] a similar post-foreign code chunk.}
}
]
The @scheme[pre:] and @scheme[post:] bindings can be of the form
@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
following:
@itemize{
@itemize[
@item{@scheme[i] --- indicates an @italic{input} pointer argument:
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
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
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:
@itemize{
@itemize[
@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{!}
: a mutator function for each @scheme[field-id].}
}
]
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

View File

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

View File

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

View File

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

View File

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

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
arguments:
@itemize{
@itemize[
@item{@indexed-scheme[min-width] --- default is the initial graphical minimum width; passed to
@method[area<%> min-width]}
@ -20,7 +20,7 @@ All @scheme[area<%>] classes accept the following named instantiation
@method[area<%> stretchable-width]}
@item{@indexed-scheme[stretchable-height] --- default is class-specific; passed to
@method[area<%> stretchable-height]}
}
]

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:
@itemize{
@itemize[
@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['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['bmp] --- load a Windows bitmap file (X, Windows, 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
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,
one of:
@itemize{
@itemize[
@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)}
}
]
The @scheme[quality] argument is used only for saving as @scheme['jpeg], in
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
(list
@p{Be sure to use the following methods to start/end drawing:}
@itemize{@item{@method[dc<%> start-doc]}
@itemize[@item{@method[dc<%> start-doc]}
@item{@method[dc<%> start-page]}
@item{@method[dc<%> end-page]}
@item{@method[dc<%> end-doc]}}
@item{@method[dc<%> end-doc]}]
@p{Attempts to use a drawing method outside of an active page raises an exception.})))
(define reference-doc '(lib "scribblings/reference/reference.scrbl"))

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:
@itemize{
@itemize[
@item{@indexed-scheme['transparent] --- Draws with no effect (on the
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
color combinations, but the mapping provides two guarantees:
@itemize{
@itemize[
@item{Black-and-white drawing to a color or monochrome
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
@scheme['xor] is equivalent to a no-op.}
}}
]}
@item{@indexed-scheme['hilite] --- In unsmoothed mode, existing
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
@scheme['solid] mode:
@itemize{
@itemize[
@item{@indexed-scheme['bdiagonal-hatch] --- diagonal lines, top-left to bottom-right}
@item{@indexed-scheme['crossdiag-hatch] --- crossed diagonal lines}
@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['horizontal-hatch] --- horizontal lines}
@item{@indexed-scheme['vertical-hatch] --- vertical lines}
}
]
However, when a specific stipple is installed into the brush
for when drawing with a smoothing mode into a non-PostScript
context, the above modes are ignored and @scheme['solid] is
used, instead.}
}
]
@index['("drawing" "outlines")]{To} draw outline shapes (such as
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:
@itemize{
@itemize[
@item{@scheme['border] --- gives the canvas a thin border}
@ -63,7 +63,7 @@ The @scheme[style] argument indicates one or more of the following styles:
later by calling @scheme[parent]'s @method[area-container<%> add-child]
method}
}
]
The @scheme['hscroll] and @scheme['vscroll] styles create a
canvas with an initially inactive scrollbar. The scrollbars are

View File

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

View File

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

View File

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

View File

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

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:
@itemize{
@itemize[
@item{the total width of the text (depends on both the font and the
text);}
@ -589,7 +589,7 @@ The result is four real numbers:
@item{extra vertical space added to the font by the font designer
(included in the height, and often zero; depends only on the font).}
}
]
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
@ -657,7 +657,7 @@ Returns @scheme[#t] if the drawing context is usable.
Determines the opacity of drawing, under certain conditions:
@itemize{
@itemize[
@item{pen- and brush-based drawing when @method[dc<%> get-smoothing]
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
an instance of @scheme[post-script-dc].}
}
]
A value of @scheme[0.0] corresponds to completely transparent (i.e.,
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:
@itemize{
@itemize[
@item{@scheme['solid] --- Before text is drawn, the destination area
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
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
platforms:
@itemize{
@itemize[
@item{@scheme['no-caption] --- omits the title bar for the dialog
(Windows)}
@ -68,7 +68,7 @@ The @scheme[style] flags adjust the appearance of the dialog on some
@item{@scheme['no-sheet] --- uses a movable window for the dialog,
even if a parent window is provided (Mac OS X)}
}
]
Even if the dialog is not shown, a few notification events may be
queued for the dialog on creation. Consequently, the new dialog's

View File

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

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
window. Other kinds of DCs draw to different kinds of devices:
@itemize{
@itemize[
@item{@scheme[bitmap-dc%] --- a @deftech{bitmap DC} draws to an
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
platform-specific printer device (Windows, Mac OS X).}
}
]
Tools that are used for drawing include the following: @scheme[pen%]
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.
The @scheme[bias] argument is one of:
@itemize{
@itemize[
@item{@scheme['start] --- if the range doesn't fit in the visible area, show the top-left region}
@item{@scheme['none] --- no special scrolling instructions}
@item{@scheme['end] --- if the range doesn't fit in the visible area, show the bottom-right region}
}
]
The return value is @scheme[#t] if the @techlink{display} is scrolled,
@scheme[#f] if not (either because the requested region is already

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

View File

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

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

View File

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

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

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

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
by seven properties:
@itemize{
@itemize[
@item{size --- The size of the text, either in points (the default)
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
designation. The families are:
@itemize{
@itemize[
@item{@indexed-scheme['default]}
@item{@indexed-scheme['decorative]}
@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['symbol] (Greek letters and more)}
@item{@indexed-scheme['system] (used to draw control labels)}
}
]
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
@ -47,23 +47,23 @@ A @defterm{font} is an object which determines the appearance of text,
drawing text.}
@item{style --- The slant style of the font, one of:
@itemize{
@itemize[
@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['italic] (X: tries @scheme['slant] if @scheme['italic] font does not exist)}
}}
]}
@item{weight --- The weight of the font, one of:
@itemize{
@itemize[
@item{@indexed-scheme['normal]}
@item{@indexed-scheme['light]}
@item{@indexed-scheme['bold]}
}}
]}
@item{underline? --- @scheme[#t] for underlined, @scheme[#f] for plain.}
@item{smoothing --- Amount of anti-alias smoothing, one of:
@itemize{
@itemize[
@item{@indexed-scheme['default] (platform-specific, sometimes user-configurable)}
@item{@indexed-scheme['partly-smoothed] (Windows: TrueType when available;
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;
X: fontconfig/Xft when available)}
@item{@indexed-scheme['unsmoothed]}
}
]
Special case: @scheme['default] corresponds to
@scheme['partly-smoothed] when used with the @scheme['modern] family
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
points (which can depend on screen resolution).}
}
]
To avoid creating multiple fonts with the same characteristics, use
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},
a @nonterm{weight}, and a @nonterm{style}, where
@itemize{
@itemize[
@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}.}
}
]
Furthermore, any of the latter three parts can be wildcarded with
@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
in the AFM file), MrEd must find additional files:
@itemize{
@itemize[
@item{@italic{Non-CID:} In addition to an AFM file
@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
name when producing PostScript with a CID-based font.}
}
]
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

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
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
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,
optionally parameterized with @litchar{%d}.}
}
]
The mapping for face names can be overridden (on all platforms)
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
some platforms:
@itemize{
@itemize[
@item{@scheme['no-resize-border] --- omits the resizeable border
around the window (Windows, X MWM) or grow box in the bottom right
@ -102,7 +102,7 @@ some platforms:
background (Mac OS X); this style is ignored when
@scheme['no-caption] is specified}
}
]
If the @scheme['mdi-child] style is specified, the @scheme[parent] must be
a frame with the @scheme['mdi-parent] style, otherwise @|MismatchExn|.
@ -274,7 +274,7 @@ Sets the large or small icon bitmap for this frame. Future changes to
The icon is used in a platform-specific way:
@itemize{
@itemize[
@item{Windows --- the small icon is used for the frame's icon (in the
top-left) and in the task bar, and the large icon is used for
@ -286,7 +286,7 @@ The icon is used in a platform-specific way:
as Windows, and others use the small icon when iconifying the
frame; the large icon is ignored.}
}
]
The bitmap for either icon can be any size, but most platforms scale
the small bitmap to 16 by 16 pixels and the large bitmap to 32 by 32

View File

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

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

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

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

View File

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

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

View File

@ -31,7 +31,7 @@ See also @|mousekeydiscuss|.
Creates a mouse event for a particular type of event. The event types
are:
@itemize{
@itemize[
@item{@scheme['enter] --- mouse pointer entered the window}
@item{@scheme['leave] --- mouse pointer left the window}
@item{@scheme['left-down] --- left mouse button pressed}
@ -41,7 +41,7 @@ Creates a mouse event for a particular type of event. The event types
@item{@scheme['right-down] --- right mouse button pressed (Mac OS X: click with control key pressed)}
@item{@scheme['right-up] --- right mouse button released (Mac OS X: release with control key pressed)}
@item{@scheme['motion] --- mouse moved, with or without button(s) pressed}
}
]
See the corresponding @schemeidfont{get-} and @schemeidfont{set-}
methods for information about @scheme[left-down],

View File

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

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:
@itemize{
@itemize[
@item{@indexed-scheme['transparent] --- Draws with no effect (on the
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
values. The @scheme['xor] mapping is unspecified for arbitrary
color combinations, but the mapping provides two guarantees:
@itemize{
@itemize[
@item{Black-and-white drawing to a color or monochrome
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
@scheme['xor] is equivalent to a no-op.}
}
]
In a smoothing mode, @scheme['xor] is equivalent to @scheme['solid].}
@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
apply when a stipple is not used:
@itemize{
@itemize[
@item{@indexed-scheme['dot]}
@item{@indexed-scheme['long-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-short-dash]}
@item{@indexed-scheme['xor-dot-dash]}
}}
]}
}
]
To avoid creating multiple pens with the same characteristics, use the
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:
@itemize{
@itemize[
@item{@ResourceFirst{default-font-size} --- sets the default font size
the basic style in a style list, and thus the default font size for
@ -79,7 +79,7 @@ The following are the (case-sensitive) preference names used by MrEd:
@scheme[clipboard<%>].}
}
]
In addition, preference names built from font face names can provide
or override default entries for the @scheme[font-name-directory<%>];

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

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

View File

@ -259,7 +259,7 @@ If @scheme[refresh?] is not @scheme[#f], then the editor is requesting to
be updated immediately.
The @scheme[bias] argument is one of:
@itemize{
@itemize[
@item{@scheme['start] --- if the range doesn't fit in the visible area, show the top-left region}
@ -267,7 +267,7 @@ The @scheme[bias] argument is one of:
@item{@scheme['end] --- if the range doesn't fit in the visible area, show the bottom-right region}
}
]
The result is @scheme[#t] if the editor is scrolled, @scheme[#f]
otherwise.

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

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

View File

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

View File

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

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
two snips, @scheme[direction] specifies which snip to return; @scheme[direction]
can be any of the following:
@itemize{
@itemize[
@item{@scheme['before-or-none] --- returns the snip before the
@techlink{position}, or @scheme[#f] if @scheme[pos] is @scheme[0]}
@ -602,7 +602,7 @@ can be any of the following:
@item{@scheme['after-or-none] -- returns the snip after the
@techlink{position}, or @scheme[#f] if @scheme[pos] is the last @techlink{position} or larger}
}
]
@boxisfillnull[(scheme s-pos) @elem{the @techlink{position} where the returned snip starts}]
@ -679,13 +679,13 @@ The @scheme[reason] argument specifies more information about what the
caret may be different from the wordbreaks used to break lines. The
possible values of @scheme[reason] are:
@itemize{
@itemize[
@item{@scheme['caret] --- find a wordbreak suitable for moving the caret}
@item{@scheme['line] --- find a wordbreak suitable for breaking lines}
@item{@scheme['selection] --- find a wordbreak suitable for selecting the closest word}
@item{@scheme['user1] --- for other (not built-in) uses}
@item{@scheme['user2] --- for other (not built-in) uses}
}
]
The actual handling of @scheme[reason] is controlled by the current
wordbreak procedure; see @method[text% set-wordbreak-func]for
@ -1227,7 +1227,7 @@ If the line starts with invisible @techlink{item}s and @scheme[visible?] is not
@|FCAMW|
To calculate lines, if the following are true:
@itemize{
@itemize[
@item{the editor is not displayed (see @secref["tb:miaoverview"]),}
@ -1235,7 +1235,7 @@ To calculate lines, if the following are true:
@item{the editor has never been viewed}
}
]
then this method ignores the editor's maximum width and any automatic
line breaks it might imply. If the first two of the above conditions
@ -1256,14 +1256,14 @@ Moves the current selection.
The possible values for @scheme[code] are:
@itemize{
@itemize[
@item{@scheme['home] --- go to start of file}
@item{@scheme['end] --- go to end of file}
@item{@scheme['right] --- move right}
@item{@scheme['left] --- move left}
@item{@scheme['up] --- move up}
@item{@scheme['down] --- move down}
}
]
If @scheme[extend?] is not @scheme[#f], the selection range is
extended instead of moved. If anchoring is on (see @method[text%
@ -1272,12 +1272,12 @@ If @scheme[extend?] is not @scheme[#f], the selection range is
The possible values for @scheme[kind] are:
@itemize{
@itemize[
@item{@scheme['simple] --- move one item or line}
@item{@scheme['word] --- works with @scheme['right] or @scheme['left]}
@item{@scheme['page] --- works with @scheme['up] or @scheme['down]}
@item{@scheme['line] --- works with @scheme['right] or @scheme['left]; moves to the start or end of the line}
}
]
See also @method[text% set-position].
@ -1317,7 +1317,7 @@ Does nothing.
Handles the following:
@itemize{
@itemize[
@item{Delete and Backspace --- calls @method[text% delete].}
@ -1329,7 +1329,7 @@ Handles the following:
@scheme[(integer->char 255)] --- inserts the character into the
editor.}
}
]
Note that an editor's @scheme[editor-canvas%] normally handles mouse
wheel events (see also @method[editor-canvas% on-char] ).
@ -1346,7 +1346,7 @@ Tracks clicks on a clickback (see @method[text% set-clickback]) of
dispatches to a caret-owning snip and detects a click on an
event-handling snip before calling to this method.
@itemize{
@itemize[
@item{Clicking on a clickback region starts clickback tracking. See
@method[text% set-clickback] for more information. Moving over a
@ -1358,7 +1358,7 @@ Tracks clicks on a clickback (see @method[text% set-clickback]) of
@item{Dragging extends the selection, scrolling if possible when the
selection is dragged outside the editor's visible region.}
}
]
}
@ -1821,11 +1821,11 @@ Set the format of the file saved from this editor.
The legal formats are:
@itemize{
@itemize[
@item{@scheme['standard] --- a standard editor file}
@item{@scheme['text] --- a text file}
@item{@scheme['text-force-cr] --- a text file; when writing, change automatic newlines (from word-wrapping) into real carriage returns}
}
]
@MonitorMethod[@elem{The file format of an editor} @elem{the
system in response to file loading and saving
@ -1910,7 +1910,7 @@ See @|ateoldiscuss| for a discussion of @scheme[at-eol?]. If
The @scheme[seltype] argument is only used when the X Window System
selection mechanism is enabled. The possible values are:
@itemize{
@itemize[
@item{@scheme['default] --- if this window has the keyboard focus
and given selection is non-empty, make it the current X selection}
@ -1921,7 +1921,7 @@ The @scheme[seltype] argument is only used when the X Window System
@item{@scheme['local] --- do not change the
current X selection}
}
]
Setting the @techlink{position} is disallowed when the editor is internally
locked for reflowing (see also @|lockdiscuss|).
@ -1945,13 +1945,13 @@ See also @scheme[editor-set-x-selection-mode].
Like @method[text% set-position], but a scrolling bias can be specified.
The possible values for @scheme[bias] are:
@itemize{
@itemize[
@item{@scheme['start-only] --- only insure that the starting @techlink{position} is visible}
@item{@scheme['start] --- if the range doesn't fit in the visible area, show the starting @techlink{position}}
@item{@scheme['none] --- no special scrolling instructions}
@item{@scheme['end] --- if the range doesn't fit in the visible area, show the ending @techlink{position}}
@item{@scheme['end-only] --- only insure that the ending @techlink{position} is visible}
}
]
See also @method[text% scroll-to-position].

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
styles:
@itemize{
@itemize[
@item{A single line of text is visible, and a special control event
is generated when the user presses Enter (when the text field has the
@ -17,7 +17,7 @@ A @scheme[text-field%] object is an editable text field with an
@item{Multiple lines of text are visible, and Enter is not handled
specially.}
}
]
Whenever the user changes the content of a text field, its callback
procedure is invoked. A callback procedure is provided as an
@ -101,7 +101,7 @@ Returns the editor used to implement the text field.
For a text field, the most useful methods of a @scheme[text%] object
are the following:
@itemize{
@itemize[
@item{@scheme[(send a-text #, @method[text% get-text])] returns
the current text of the editor.}
@ -112,7 +112,7 @@ For a text field, the most useful methods of a @scheme[text%] object
@item{@scheme[(send a-text #, @method[text% insert] _str)] inserts
@scheme[_str] into the editor at the current caret position.}
}
]
}

View File

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

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

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
arguments:
@itemize{
@itemize[
@item{@indexed-scheme[enabled] --- default is @scheme[#t]; passed to
@method[window<%> enable] if @scheme[#f]}
}
]
@ -113,7 +113,7 @@ Returns an exact integer representing a handle to the window in the
current platform's GUI toolbox. Cast this number from a C @tt{long}
to a platform-specific C type:
@itemize{
@itemize[
@item{Windows: @tt{HWND}}
@ -122,7 +122,7 @@ to a platform-specific C type:
@item{X: @tt{Widget*}}
}
]
Some windows may not have a representation in the platform's GUI level,
in which case the result of this method is @scheme[0].

View File

@ -19,7 +19,7 @@ Mitchell and McKim's principles for design by contract DbC are derived
we use a mostly applicative, we
retain their terminology of ``classes'' and ``objects'':
@itemize{
@itemize[
@item{@bold{Separate queries from commands.}
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.}}
@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
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:
@itemize{
@itemize[
@item{The first one is a parenthesized group of contracts for all required
arguments. In this example, we see two: @scheme[string?] and
@scheme[natural-number/c]. }
@ -113,7 +113,7 @@ arguments. In this example, we see two: @scheme[string?] and
arguments: @scheme[char?]. }
@item{The last one is a single contract: the result of the function.}
}
]
Note if a default value does not satisfy a contract, you
won't get a contract error for this interface. In contrast
@ -358,7 +358,7 @@ scheme
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
produces an account. This kind of contract is just like a
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
@scheme[->d] combinator. }
}
]
The code in the first section defines all those pieces that
are needed for the formulation of the export contracts:
@ -467,13 +467,13 @@ others):
[(s start end) (substring s start end)]))
]
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{a string and an index into the string, in which case it extracts the
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
fragment of the string between the two indices. }
}
]
The contract for such a function is formed with the @scheme[case->]
combinator, which combines as many functional contracts as needed:

View File

@ -37,13 +37,13 @@ scheme
]
It exports two functions:
@itemize{
@itemize[
@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. }
@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
@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
built from @scheme[_struct-id] and the @scheme[_field-id]s:
@itemize{
@itemize[
@item{@schemeidfont{make-}@scheme[_struct-id] : a
@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
@secref["struct-options"]).}
}
]
A @scheme[define-struct] form places no constraints on the kinds of
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
convenient:
@itemize{
@itemize[
@item{@tech{Opaque} (the default) : Instances cannot be inspected or
forged without access to the structure-type declaration. As
@ -394,7 +394,7 @@ convenient:
manufacture instances directly. The instance cannot have a
@tech{constructor guard} or @tech{properties}.}
}
]
Since the expression reader can generate @tech{prefab} instances, they
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