371.2
svn: r7263 original commit: e4cbc4e6a938fd5bd90aab305ca39d61e7eae151
This commit is contained in:
parent
371a8ea509
commit
1326804b18
|
@ -1,9 +1,10 @@
|
|||
#reader(lib "reader.ss" "scribble")
|
||||
(module blurbs mzscheme
|
||||
(module blurbs (lib "lang.ss" "big")
|
||||
(require (lib "struct.ss" "scribble")
|
||||
(lib "manual.ss" "scribble")
|
||||
(lib "scheme.ss" "scribble")
|
||||
(lib "decode.ss" "scribble"))
|
||||
(require-for-label (lib "mred.ss" "mred"))
|
||||
|
||||
(provide (all-defined-except p))
|
||||
|
||||
|
@ -96,7 +97,7 @@ start/end @techlink{position} is incremented by @|what|.})
|
|||
|
||||
(define OVD
|
||||
@elem{The result is only valid when the editor is displayed (see
|
||||
@secref["mr:tb:miaoverview"]).})
|
||||
@secref["tb:miaoverview"]).})
|
||||
|
||||
(define (FCAX c details)
|
||||
@elem{@|c|alling this method may force the recalculation of @techlink{location}
|
||||
|
@ -119,28 +120,28 @@ information@|details|, even if the editor currently has delayed refreshing (see
|
|||
instead of lines (determined by both explicit newline
|
||||
characters and automatic line-wrapping).})
|
||||
|
||||
(define admindiscuss @secref["mr:editoradministrators"])
|
||||
(define ateoldiscuss @secref["mr:editoreol"])
|
||||
(define textdiscuss @secref["mr:editorflattened"])
|
||||
(define clickbackdiscuss @secref["mr:editorclickback"])
|
||||
(define stylediscuss @secref["mr:editorstyles"])
|
||||
(define timediscuss @secref["mr:editorcutandpastetime"])
|
||||
(define filediscuss @secref["mr:editorfileformat"])
|
||||
(define editordatadiscuss @secref["mr:editordata"])
|
||||
(define snipclassdiscuss @secref["mr:editorsnipclasses"])
|
||||
(define togglediscuss @secref["mr:styledeltatoggle"])
|
||||
(define drawcaretdiscuss @secref["mr:drawcaretinfo"])
|
||||
(define eventspacediscuss @secref["mr:eventspaceinfo"])
|
||||
(define lockdiscuss @secref["mr:lockinfo"])
|
||||
(define mousekeydiscuss @secref["mr:mouseandkey"])
|
||||
(define globaleditordatadiscuss @secref["mr:globaleditordata"])
|
||||
(define admindiscuss @secref["editoradministrators"])
|
||||
(define ateoldiscuss @secref["editoreol"])
|
||||
(define textdiscuss @secref["editorflattened"])
|
||||
(define clickbackdiscuss @secref["editorclickback"])
|
||||
(define stylediscuss @secref["editorstyles"])
|
||||
(define timediscuss @secref["editorcutandpastetime"])
|
||||
(define filediscuss @secref["editorfileformat"])
|
||||
(define editordatadiscuss @secref["editordata"])
|
||||
(define snipclassdiscuss @secref["editorsnipclasses"])
|
||||
(define togglediscuss @secref["styledeltatoggle"])
|
||||
(define drawcaretdiscuss @secref["drawcaretinfo"])
|
||||
(define eventspacediscuss @secref["eventspaceinfo"])
|
||||
(define lockdiscuss @secref["lockinfo"])
|
||||
(define mousekeydiscuss @secref["mouseandkey"])
|
||||
(define globaleditordatadiscuss @secref["globaleditordata"])
|
||||
|
||||
(define geomdiscuss @secref["mr:containeroverview"])
|
||||
(define geomdiscuss @secref["containeroverview"])
|
||||
|
||||
(define mrprefsdiscuss @secref["mr:mredprefs"])
|
||||
(define mrprefsdiscuss @secref["mredprefs"])
|
||||
|
||||
(define seesniporderdiscuss
|
||||
@elem{See @secref["mr:tb:miaoverview"] for information about snip order in pasteboards.})
|
||||
@elem{See @secref["tb:miaoverview"] for information about snip order in pasteboards.})
|
||||
|
||||
(define (clipboardtypes)
|
||||
@elem{The @scheme[format] string is typically four capital letters. (Under
|
||||
|
@ -159,7 +160,9 @@ information@|details|, even if the editor currently has delayed refreshing (see
|
|||
@item{@method[dc<%> end-doc]}}
|
||||
@p{Attempts to use a drawing method outside of an active page raises an exception.})))
|
||||
|
||||
(define SeeMzParam @elem{(see @secref["mz:parameters"])})
|
||||
(define reference-doc '(lib "reference.scrbl" "scribblings" "reference"))
|
||||
|
||||
(define SeeMzParam @elem{(see @secref[#:doc reference-doc "parameters"])})
|
||||
|
||||
(define DrawSizeNote @elem{Restrictions on the magnitude of
|
||||
drawing coordinates are described with @scheme[dc<%>].})
|
||||
|
|
|
@ -11,6 +11,12 @@
|
|||
(all-from (lib "class.ss"))
|
||||
(all-from (lib "contract.ss"))
|
||||
(all-from "blurbs.ss")
|
||||
(all-from "../reference/mz.ss")))
|
||||
(all-from "../reference/mz.ss"))
|
||||
|
||||
(require-for-label (lib "mred.ss" "mred")
|
||||
(lib "class.ss")
|
||||
(lib "lang.ss" "big"))
|
||||
(provide-for-label (all-from (lib "mred.ss" "mred"))
|
||||
(all-from (lib "class.ss"))
|
||||
(all-from (lib "lang.ss" "big"))))
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
(lib "struct.ss" "scribble")
|
||||
(lib "scheme.ss" "scribble")
|
||||
(lib "manual.ss" "scribble"))
|
||||
(require-for-label (lib "mred.ss" "mred"))
|
||||
|
||||
(provide diagram->table
|
||||
short-windowing-diagram
|
||||
|
@ -31,7 +32,8 @@
|
|||
[(regexp-match #rx"([^-a-zA-Z0-9]*)([-a-zA-Z0-9<%>]+)(.*)" line)
|
||||
=> (lambda (m)
|
||||
(append (loop (cadr m))
|
||||
(list (to-element (string->symbol (caddr m))))
|
||||
(list (to-element (make-just-context (string->symbol (caddr m))
|
||||
#'here)))
|
||||
(loop (cadddr m))))]
|
||||
[else (list (make-element 'tt (list line)))])))))))
|
||||
(regexp-split #rx"[\r\n]+" d))))
|
||||
|
|
|
@ -350,9 +350,9 @@ If @scheme[raise-errors?] is true, then an error in reading triggers an
|
|||
This procedure is a load handler for use with @scheme[current-load].
|
||||
|
||||
The handler recognizes MrEd editor-format files (see
|
||||
@secref["mr:editorfileformat"]) and decodes them for loading. It is
|
||||
@secref["editorfileformat"]) and decodes them for loading. It is
|
||||
normally installed as MrEd starts (see
|
||||
@secref["mr:startupsequence"]).
|
||||
@secref[#:doc reference-doc "running-sa"]).
|
||||
|
||||
The handler recognizes editor files by the first twelve characters of
|
||||
the file: @litchar{WXME01}@nonterm{digit}@nonterm{digit}@litchar{ ## }.
|
||||
|
@ -412,7 +412,7 @@ One or more editors can be written to the stream by calling the
|
|||
To support streams that span MrEd versions, use
|
||||
@scheme[write-editor-version] before this procedure.
|
||||
|
||||
See also @secref["mr:editorfileformat"].
|
||||
See also @secref["editorfileformat"].
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -205,7 +205,7 @@ When an editor contains other editors, using @method[editor<%>
|
|||
end-edit-sequence] for the sub-editor.
|
||||
|
||||
See also @method[editor<%> refresh-delayed?] and @method[editor<%>
|
||||
in-edit-sequence?], and see @secref["mr:editorthreads"] for
|
||||
in-edit-sequence?], and see @secref["editorthreads"] for
|
||||
information about edit sequences and refresh requests.
|
||||
|
||||
If the @scheme[undoable?] flag is @scheme[#f], then the changes made
|
||||
|
@ -1322,7 +1322,7 @@ If automatic wrapping is enabled (see @method[editor<%> auto-wrap] )
|
|||
Calls @method[editor<%> on-display-size] unless the editor is
|
||||
currently in an edit sequence or currently being refreshed. In the
|
||||
latter cases, the call to @method[editor<%> on-display-size] is
|
||||
delegated to another thread; see @secref["mr:editorthreads"] for more
|
||||
delegated to another thread; see @secref["editorthreads"] for more
|
||||
information.
|
||||
|
||||
}
|
||||
|
@ -1853,7 +1853,7 @@ See also @method[editor<%> add-undo].
|
|||
void?]{
|
||||
|
||||
Repaints a region of the editor, generally called by an editor
|
||||
administrator. See @secref["mr:editorthreads"] for information about
|
||||
administrator. See @secref["editorthreads"] for information about
|
||||
edit sequences and refresh requests.
|
||||
|
||||
The @scheme[x], @scheme[y], @scheme[width], and @scheme[height] arguments specify
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
@require[(lib "bnf.ss" "scribble")]
|
||||
@require["common.ss"]
|
||||
|
||||
@title[#:tag "mr:editor-overview"]{Editor}
|
||||
@title[#:tag "editor-overview"]{Editor}
|
||||
|
||||
The editor toolbox provides a foundation for two common kinds of
|
||||
applications:
|
||||
|
@ -154,7 +154,7 @@ Applications that use the editor classes typically derive new versions
|
|||
(super-new)))
|
||||
]
|
||||
|
||||
@section[#:tag "mr:tb:miaoverview"]{Editor Structure and Terminology}
|
||||
@section[#:tag "tb:miaoverview"]{Editor Structure and Terminology}
|
||||
|
||||
MrEd supports extensible and nestable editors by decomposing an editor
|
||||
assembly into three functional parts:
|
||||
|
@ -221,7 +221,7 @@ When an editor is drawn into a display, each snip and position has a
|
|||
displayed.
|
||||
|
||||
|
||||
@subsection[#:tag "mr:editoradministrators"]{Administrators}
|
||||
@subsection[#:tag "editoradministrators"]{Administrators}
|
||||
|
||||
Two extra layers of administration manage the @techlink{display}-editor and
|
||||
editor-snip connections. An editor never communicates directly with
|
||||
|
@ -259,7 +259,7 @@ When an editor is displayed by multiple canvases, one of the canvases'
|
|||
editor's @method[editor<%> get-admin] method thus depends on the
|
||||
context of the call.
|
||||
|
||||
@subsection[#:tag "mr:editorstyles"]{Styles}
|
||||
@subsection[#:tag "editorstyles"]{Styles}
|
||||
|
||||
A @deftech{style}, an instance of the @scheme[style<%>] interface,
|
||||
parameterizes high-level display information that is common to all
|
||||
|
@ -336,7 +336,7 @@ See @xmethod[text% get-styles-sticky] for more information about the
|
|||
style of inserted text.
|
||||
|
||||
|
||||
@section[#:tag "mr:editorfileformat"]{File Format}
|
||||
@section[#:tag "editorfileformat"]{File Format}
|
||||
|
||||
To allow editor content to be saved to a file, the editor classes
|
||||
implement a special file format. (The format is used when cutting and
|
||||
|
@ -412,7 +412,7 @@ Snip classes, snip data, and snip data classes solve problems related
|
|||
for saving files or cut-and-paste, these issues can be safely
|
||||
ignored.
|
||||
|
||||
@subsubsection[#:tag "mr:editorsnipclasses"]{Snip Classes}
|
||||
@subsubsection[#:tag "editorsnipclasses"]{Snip Classes}
|
||||
|
||||
Each snip can be associated to a @deftech{snip class}. This ``class''
|
||||
is not a class description in the programmer's language; it is an
|
||||
|
@ -435,7 +435,7 @@ If a snip class's name is of the form @scheme["(lib ...)"], then the
|
|||
it is inserted into the current eventspace's snip class list, and
|
||||
loading or saving continues using the new class.
|
||||
|
||||
@subsubsection[#:tag "mr:editordata"]{Editor Data}
|
||||
@subsubsection[#:tag "editordata"]{Editor Data}
|
||||
|
||||
While a snip belongs to an editor, the editor may store extra
|
||||
information about a snip in some specialized way. When the snip is to
|
||||
|
@ -475,7 +475,7 @@ To store and load information about a snip or region in an editor:
|
|||
}
|
||||
|
||||
|
||||
@subsection[#:tag "mr:globaleditordata"]{Global Data: Headers and Footers}
|
||||
@subsection[#:tag "globaleditordata"]{Global Data: Headers and Footers}
|
||||
|
||||
The editor file format provides for adding extra global data in
|
||||
special header and footer sections. To save and load special header
|
||||
|
@ -517,7 +517,7 @@ See also @method[editor<%> write-headers-to-file] and
|
|||
@method[editor<%> write-headers-to-file].
|
||||
|
||||
|
||||
@section[#:tag "mr:editoreol"]{End of Line Ambiguity}
|
||||
@section[#:tag "editoreol"]{End of Line Ambiguity}
|
||||
|
||||
Because an editor can force a line break even when there is no
|
||||
carriage return item, a @techlink{position} alone does not always
|
||||
|
@ -539,7 +539,7 @@ For this reason, @techlink{position}-setting and
|
|||
is filled with @scheme[#t] if the position is ambiguous and it came
|
||||
from a right-side location, or @scheme[#f] otherwise.
|
||||
|
||||
@section[#:tag "mr:editorflattened"]{Flattened Text}
|
||||
@section[#:tag "editorflattened"]{Flattened Text}
|
||||
|
||||
In plain text editors, there is a simple correlation between
|
||||
@techlink{position}s and characters. In an @scheme[editor<%>] object,
|
||||
|
@ -568,7 +568,7 @@ Text can be extracted from an editor in either of two forms:
|
|||
|
||||
}
|
||||
|
||||
@section[#:tag "mr:drawcaretinfo"]{Caret Ownership}
|
||||
@section[#:tag "drawcaretinfo"]{Caret Ownership}
|
||||
|
||||
Within a frame, only one object can contain the keyboard focus. This
|
||||
property must be maintained when a frame contains multiple editors in
|
||||
|
@ -609,7 +609,7 @@ The @scheme['show-inactive-caret] display mode is useful for showing
|
|||
its selection.
|
||||
|
||||
|
||||
@section[#:tag "mr:editorcutandpastetime"]{Cut and Paste Time Stamps}
|
||||
@section[#:tag "editorcutandpastetime"]{Cut and Paste Time Stamps}
|
||||
|
||||
Methods of @scheme[editor<%>] that use the clipboard --- including
|
||||
@method[editor<%> copy], @method[editor<%> cut], @method[editor<%>
|
||||
|
@ -627,7 +627,7 @@ If the time stamp is 0, it defaults to the current time. Using 0 as the
|
|||
under X.
|
||||
|
||||
|
||||
@section[#:tag "mr:editorclickback"]{Clickbacks}
|
||||
@section[#:tag "editorclickback"]{Clickbacks}
|
||||
|
||||
@deftech{Clickbacks} in a @scheme[text%] editor facilitate the
|
||||
creation of simple interactive objects, such as hypertext. A
|
||||
|
@ -647,7 +647,7 @@ Note that there is no attempt to save clickback information when a
|
|||
file is saved, since a clickback will have an arbitrary procedure
|
||||
associated with it.
|
||||
|
||||
@section[#:tag "mr:lockinfo"]{Internal Editor Locks}
|
||||
@section[#:tag "lockinfo"]{Internal Editor Locks}
|
||||
|
||||
Instances of @scheme[editor<%>] have three levels of internal
|
||||
locking:
|
||||
|
@ -693,7 +693,7 @@ Methods that report @techlink{location}-independent information about an
|
|||
that modifies the editor in any way, even setting the selection
|
||||
position, can trigger a read lock, flow lock, or write lock.
|
||||
|
||||
@section[#:tag "mr:editorthreads"]{Editors and Threads}
|
||||
@section[#:tag "editorthreads"]{Editors and Threads}
|
||||
|
||||
An editor is not tied to any particular thread or eventspace, except
|
||||
to the degree that it is displayed in a canvas (which has an
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#reader(lib "docreader.ss" "scribble")
|
||||
@require["common.ss"]
|
||||
|
||||
@title[#:tag "mr:eventspace-funcs"]{Eventspaces}
|
||||
@title[#:tag "eventspace-funcs"]{Eventspaces}
|
||||
|
||||
@defproc[(make-eventspace)
|
||||
eventspace]{
|
||||
|
@ -139,7 +139,7 @@ A second (optional) boolean argument indicates whether the callback
|
|||
any/c])]{
|
||||
\index{pause}\index{wait}
|
||||
Yields control to event dispatching. See
|
||||
@secref["mr:eventspaceinfo"] for details.
|
||||
@secref["eventspaceinfo"] for details.
|
||||
|
||||
A handler procedure invoked by the system during a call to
|
||||
@scheme[yield] can itself call @scheme[yield], creating
|
||||
|
@ -180,18 +180,18 @@ Evaluating @scheme[(yield 'wait)] is thus similar to
|
|||
sensitive to whether the current thread is a handler thread, instead
|
||||
of the value of the @scheme[current-eventspace] parameter.
|
||||
|
||||
If @scheme[v] is an event in MzScheme's sense (not to be confused with a
|
||||
GUI event), @scheme[yield] blocks on @scheme[v] in the same way as
|
||||
MzScheme's \Mzhyperref{@scheme[sync]}{mz:sync}, except that it may
|
||||
start a @scheme[sync] on @scheme[v] multiple times (but it will complete
|
||||
a @scheme[sync] on @scheme[v] at most one time). If the current thread
|
||||
is the current eventspace's handler thread, events are dispatched
|
||||
until a @scheme[v] sync succeeds on a MrEd event boundary. For other
|
||||
threads, calling @scheme[yield] with a MzScheme event is
|
||||
equivalent to calling @scheme[sync]. In either case, the result is
|
||||
the same that of @scheme[sync]; however, if a wrapper procedure is
|
||||
associated with @scheme[v] via @scheme[handle-evt], it is not called in
|
||||
tail position with respect to the @scheme[yield].
|
||||
If @scheme[v] is an event in MzScheme's sense (not to be confused with
|
||||
a GUI event), @scheme[yield] blocks on @scheme[v] in the same way as
|
||||
@scheme[sync], except that it may start a @scheme[sync] on @scheme[v]
|
||||
multiple times (but it will complete a @scheme[sync] on @scheme[v] at
|
||||
most one time). If the current thread is the current eventspace's
|
||||
handler thread, events are dispatched until a @scheme[v] sync
|
||||
succeeds on a MrEd event boundary. For other threads, calling
|
||||
@scheme[yield] with a MzScheme event is equivalent to calling
|
||||
@scheme[sync]. In either case, the result is the same that of
|
||||
@scheme[sync]; however, if a wrapper procedure is associated with
|
||||
@scheme[v] via @scheme[handle-evt], it is not called in tail position
|
||||
with respect to the @scheme[yield].
|
||||
|
||||
Always use @scheme[(yield @scheme[v])] instead of a busy-wait loop.
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ Returns a list of font face names available on the current system. If
|
|||
|
||||
Returns the built-in default face mapping for a particular font
|
||||
family. The built-in default can be overridden via preferences, as
|
||||
described in @secref["mr:fontresources"].
|
||||
described in @secref["fontresources"].
|
||||
|
||||
See @scheme[font%] for information about @scheme[family].
|
||||
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
#reader(lib "docreader.ss" "scribble")
|
||||
@require["common.ss"]
|
||||
|
||||
@title{PLT Scheme GUI: MrEd}
|
||||
@title[#:tag-prefix '(lib "gui.scrbl" "scribblings" "gui")
|
||||
#:tag "top"]{PLT Scheme GUI: MrEd}
|
||||
|
||||
@declare-exporting[(lib "mred")]
|
||||
|
||||
This reference manual describes the MrEd GUI toolbox that is part of
|
||||
PLT Scheme. See @secref["guide:mred"] in
|
||||
@italic{@link["../guide/index.html"]{A Guide to PLT Scheme}} for an
|
||||
introduction to MrEd.
|
||||
PLT Scheme. See @secref[#:doc '(lib "guide.scrbl" "scribblings"
|
||||
"guide") "mred"] in @italic{@link["../guide/index.html"]{A Guide to
|
||||
PLT Scheme}} for an introduction to MrEd.
|
||||
|
||||
The @scheme[(lib "mred")] module provides all of the class, interface,
|
||||
and procedure bindings defined in this manual. The
|
||||
|
|
|
@ -11,18 +11,18 @@ For documentation purposes, the MrEd toolbox is organized into three
|
|||
@item{The @deftech{windowing} toolbox, for implementing form-filling
|
||||
GUI programs (such as a database query window) using buttons, menus,
|
||||
text fields, and events. The windowing toolbox is described in
|
||||
@secref["mr:windowing-overview"].}
|
||||
@secref["windowing-overview"].}
|
||||
|
||||
@item{The @deftech{drawing} toolbox, for drawing pictures or
|
||||
implementing dynamic GUI programs (such as a video game) using
|
||||
drawing canvases, pens, and brushes. The drawing toolbox is
|
||||
described in @secref["mr:drawing-overview"].}
|
||||
described in @secref["drawing-overview"].}
|
||||
|
||||
@item{The @deftech{editor} toolbox, for developing traditional text
|
||||
editors, editors that mix text and graphics, or free-form layout
|
||||
editors (such as a word processor, HTML editor, or icon-based file
|
||||
browser). The editor toolbox is described in
|
||||
@secref["mr:editor-overview"].}
|
||||
@secref["editor-overview"].}
|
||||
|
||||
}
|
||||
|
||||
|
|
4
collects/scribblings/gui/info.ss
Normal file
4
collects/scribblings/gui/info.ss
Normal file
|
@ -0,0 +1,4 @@
|
|||
(module info (lib "infotab.ss" "setup")
|
||||
(define name "Scribblings: GUI")
|
||||
(define scribblings '(("gui.scrbl" (multi-page main-doc)))))
|
||||
|
|
@ -83,7 +83,7 @@ If @scheme[try-chain?] is not @scheme[#f], keymaps chained to this one
|
|||
are searched for the function name. If the function is not found and
|
||||
@scheme[try-chain?] is @scheme[#f]; an exception is also raised, but
|
||||
the exception handler cannot escape (see
|
||||
@secref["mr:evtcontjump"]).
|
||||
@secref["evtcontjump"]).
|
||||
|
||||
}
|
||||
|
||||
|
@ -327,7 +327,7 @@ Examples:
|
|||
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
|
||||
exception, but the exception handler cannot escape (see
|
||||
@secref["mr:evtcontjump"]).
|
||||
@secref["evtcontjump"]).
|
||||
|
||||
A function name does not have to be mapped to a handler before input
|
||||
states are mapped to the name; the handler is dispatched by name at
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#reader(lib "docreader.ss" "scribble")
|
||||
@require["common.ss"]
|
||||
|
||||
@title[#:tag "mr:mredprefs"]{Preferences}
|
||||
@title[#:tag "mredprefs"]{Preferences}
|
||||
|
||||
MrEd supports a number of preferences for global configuration. The
|
||||
MrEd preferences are stored in the common file reported by
|
||||
|
@ -22,7 +22,7 @@ The following are the (case-sensitive) preference names used by MrEd:
|
|||
@item{@ResourceFirst{controlFontSize} --- sets the font size for
|
||||
control and menu labels (Windows, X); the font is the @scheme['system]
|
||||
font, which can be configured as described in
|
||||
@secref["mr:fontresources"].}
|
||||
@secref["fontresources"].}
|
||||
|
||||
@item{@ResourceFirst{defaultMenuPrefix} --- sets the prefix used by
|
||||
default for menu item shortcuts under X, one of @scheme['ctl],
|
||||
|
@ -82,4 +82,4 @@ The following are the (case-sensitive) preference names used by MrEd:
|
|||
|
||||
In addition, preference names built from font face names can provide
|
||||
or override default entries for the @scheme[font-name-directory<%>];
|
||||
see @secref["mr:fontresources"] for information.
|
||||
see @secref["fontresources"] for information.
|
||||
|
|
|
@ -16,7 +16,8 @@ A @scheme[readable-snip<%>] object is treated specially by the port
|
|||
any/c]{
|
||||
|
||||
The arguments are the same as the arguments to a procedure returned by
|
||||
a custom input port's @scheme[read]; see @secref["mz:customport"] for
|
||||
a custom input port's @scheme[read]; see @secref[#:doc '(lib
|
||||
"reference.scrbl" "scribblings" "reference") "customport"] for
|
||||
details. The result is also the same as the result from a
|
||||
@scheme[read]-produced procedure.
|
||||
|
||||
|
|
|
@ -1228,7 +1228,7 @@ If the line starts with invisible @techlink{item}s and @scheme[visible?] is not
|
|||
To calculate lines, if the following are true:
|
||||
@itemize{
|
||||
|
||||
@item{the editor is not displayed (see @secref["mr:tb:miaoverview"]),}
|
||||
@item{the editor is not displayed (see @secref["tb:miaoverview"]),}
|
||||
|
||||
@item{a maximum width is set for the editor, and}
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ Timers have a relatively high priority in the event queue. Thus, if
|
|||
within the @method[timer% notify] procedure to allow guaranteed event
|
||||
processing.
|
||||
|
||||
See @secref["mr:eventspaceinfo"] for more information about event
|
||||
See @secref["eventspaceinfo"] for more information about event
|
||||
priorities.
|
||||
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
@require["common.ss"]
|
||||
@require["diagrams.ss"]
|
||||
|
||||
@title[#:tag "mr:windowing-overview"]{Windowing}
|
||||
@title[#:tag "windowing-overview"]{Windowing}
|
||||
|
||||
@section{Basic GUI Building Blocks}
|
||||
|
||||
|
@ -18,7 +18,7 @@ MrEd's windowing toolbox provides the basic building blocks of GUI
|
|||
(define frame (new frame% [label "Example"]))
|
||||
|
||||
(code:comment #, @t{Show the frame by calling its @method[top-level-window<%> show] method})
|
||||
(send frame top-level-window::show #t)
|
||||
(send frame #,(:: top-level-window<%> show) #t)
|
||||
]
|
||||
|
||||
The built-in classes provide various mechanisms for handling GUI
|
||||
|
@ -103,7 +103,7 @@ The system dispatches GUI events sequentially; that is, after invoking
|
|||
After the user clicks @onscreen{Pause}, the entire frame becomes
|
||||
unresponsive for five seconds; the system cannot dispatch more events
|
||||
until the call to @scheme[sleep] returns. For more information about
|
||||
event dispatching, see @secref["mr:eventspaceinfo"].
|
||||
event dispatching, see @secref["eventspaceinfo"].
|
||||
|
||||
In addition to dispatching events, the GUI classes also handle the
|
||||
graphical layout of windows. Our example frame demonstrates a simple
|
||||
|
@ -128,7 +128,7 @@ In addition to dispatching events, the GUI classes also handle the
|
|||
]
|
||||
|
||||
For more information about window layout and containers, see
|
||||
@secref["mr:containeroverview"].
|
||||
@secref["containeroverview"].
|
||||
|
||||
@section{Core Windowing Classes}
|
||||
|
||||
|
@ -180,7 +180,7 @@ The fundamental graphical element in MrEd's windowing toolbox is an
|
|||
@item{@scheme[editor-canvas%] --- an @deftech{editor canvas} is a
|
||||
subwindow for displaying a text editor or pasteboard editor. The
|
||||
@scheme[editor-canvas%] class is documented with the editor classes
|
||||
in @secref["mr:editor-overview"].}
|
||||
in @secref["editor-overview"].}
|
||||
|
||||
@item{@deftech{Controls} --- containees that the user can manipulate:
|
||||
|
||||
|
@ -318,7 +318,7 @@ system:
|
|||
|
||||
@; ------------------------------------------------------------------------
|
||||
|
||||
@section[#:tag "mr:containeroverview"]{Geometry Management}
|
||||
@section[#:tag "containeroverview"]{Geometry Management}
|
||||
|
||||
MrEd's geometry management makes it easy to design windows that look
|
||||
right on all platforms, despite different graphical representations
|
||||
|
@ -385,15 +385,15 @@ As the example demonstrates, a stretchable container grows to fill its
|
|||
|
||||
The following subsections describe the container system in detail,
|
||||
first discussing the attributes of a containee in
|
||||
@secref["mr:containees"], and then describing
|
||||
@secref["containees"], and then describing
|
||||
the attributes of a container in
|
||||
@secref["mr:containers"]. In addition to the
|
||||
@secref["containers"]. In addition to the
|
||||
built-in vertical and horizontal containers, programmers can define
|
||||
new types of containers as discussed in the final subsection,
|
||||
@secref["mr:new-containers"].
|
||||
@secref["new-containers"].
|
||||
|
||||
|
||||
@subsection[#:tag "mr:containees"]{Containees}
|
||||
@subsection[#:tag "containees"]{Containees}
|
||||
|
||||
Each @tech{containee}, or child, has the following properties:
|
||||
|
||||
|
@ -414,7 +414,7 @@ A @tech{container} arranges its children based on these four
|
|||
container is specified when the @tech{containee} is created, and the
|
||||
parent cannot be changed. However, a @tech{containee} can be
|
||||
@tech{hidden} or @tech{deleted} within its parent, as described in
|
||||
@secref["mr:containers"].
|
||||
@secref["containers"].
|
||||
|
||||
The @deftech{graphical minimum size} of a particular containee, as
|
||||
reported by @method[area<%> get-graphical-min-size], depends on the
|
||||
|
@ -462,7 +462,7 @@ In practice, the @tech{requested minimum size} and @tech{margin} of a
|
|||
containee, depending on the visual effect desired by the programmer.
|
||||
|
||||
|
||||
@subsection[#:tag "mr:containers"]{Containers}
|
||||
@subsection[#:tag "containers"]{Containers}
|
||||
|
||||
A container has the following properties:
|
||||
|
||||
|
@ -573,7 +573,7 @@ The alignment specification for a container determines how it
|
|||
the container. A container's alignment is changed with the
|
||||
@method[area-container<%> set-alignment] method.
|
||||
|
||||
@subsection[#:tag "mr:new-containers"]{Defining New Types of Containers}
|
||||
@subsection[#:tag "new-containers"]{Defining New Types of Containers}
|
||||
|
||||
Although nested horizontal and vertical containers can express most
|
||||
layout patterns, a programmer can define a new type of container with
|
||||
|
@ -613,7 +613,7 @@ The widths and heights for both the input and output include the
|
|||
placing the control.
|
||||
|
||||
|
||||
@section[#:tag "mr:mouseandkey"]{Mouse and Keyboard Events}
|
||||
@section[#:tag "mouseandkey"]{Mouse and Keyboard Events}
|
||||
|
||||
Whenever the user moves the mouse, clicks or releases a mouse button,
|
||||
or presses a key on the keyboard, an event is generated for some
|
||||
|
@ -698,7 +698,7 @@ Controls, such as buttons and list boxes, handle keyboard and mouse
|
|||
|
||||
@; ------------------------------------------------------------------------
|
||||
|
||||
@section[#:tag "mr:eventspaceinfo"]{Event Dispatching and Eventspaces}
|
||||
@section[#:tag "eventspaceinfo"]{Event Dispatching and Eventspaces}
|
||||
|
||||
@section-index["events" "dispatching"]
|
||||
|
||||
|
@ -754,12 +754,12 @@ In MrEd, an @deftech{eventspace} is a context for processing GUI
|
|||
|
||||
@index['("dialogs" "modal")]{When} a frame or dialog is created
|
||||
without a parent, it is associated with the @tech{current eventspace}
|
||||
as described in @secref["mr:currenteventspace"]. Events for a
|
||||
as described in @secref["currenteventspace"]. Events for a
|
||||
top-level window and its descendants are always dispatched in the
|
||||
window's eventspace. Every dialog is modal; a dialog's
|
||||
@method[dialog% show] method implicitly calls @scheme[yield] to
|
||||
handle events while the dialog is shown. (See also
|
||||
@secref["mr:espacethreads"] for information about threads and modal
|
||||
@secref["espacethreads"] for information about threads and modal
|
||||
dialogs.) Furthermore, when a modal dialog is shown, the system
|
||||
disables all other top-level windows in the dialog's eventspace, but
|
||||
windows in other eventspaces are unaffected by the modal dialog.
|
||||
|
@ -783,7 +783,7 @@ In addition to events corresponding to user and windowing actions,
|
|||
call the timer's @method[timer% notify] method. Like a top-level
|
||||
window, each timer is associated with a particular eventspace (the
|
||||
@tech{current eventspace} as described in
|
||||
@secref["mr:currenteventspace"]) when it is created, and the timer
|
||||
@secref["currenteventspace"]) when it is created, and the timer
|
||||
queues the event in its eventspace.
|
||||
|
||||
@deftech{Explicitly queued events} are created with
|
||||
|
@ -817,10 +817,10 @@ Although a programmer has no direct control over the order in which
|
|||
dispatches by setting the event dispatch handler via the
|
||||
@scheme[event-dispatch-handler] parameter. This parameter and other
|
||||
eventspace procedures are described in more detail in
|
||||
@secref["mr:eventspace-funcs"].
|
||||
@secref["eventspace-funcs"].
|
||||
|
||||
|
||||
@subsection[#:tag "mr:espacethreads"]{Eventspaces and Threads}
|
||||
@subsection[#:tag "espacethreads"]{Eventspaces and Threads}
|
||||
|
||||
When a new eventspace is created, a corresponding @deftech{handler
|
||||
thread} is created for the eventspace. When the system dispatches an
|
||||
|
@ -840,7 +840,7 @@ When a handler thread shows a dialog, the dialog's @method[dialog%
|
|||
@scheme[semaphore-wait].
|
||||
|
||||
|
||||
@subsection[#:tag "mr:currenteventspace"]{Creating and Setting the Eventspace}
|
||||
@subsection[#:tag "currenteventspace"]{Creating and Setting the Eventspace}
|
||||
|
||||
Whenever a frame, dialog, or timer is created, it is associated with
|
||||
the @deftech{current eventspace} as determined by the
|
||||
|
@ -858,23 +858,24 @@ The @scheme[make-eventspace] procedure creates a new
|
|||
]
|
||||
|
||||
When an eventspace is created, it is placed under the management of
|
||||
the @tech{current custodian}. When a custodian shuts down an
|
||||
eventspace, all frames and dialogs associated with the eventspace are
|
||||
destroyed (without calling @method[top-level-window<%> can-close?]
|
||||
or @xmethod[top-level-window<%> on-close]), all timers in the
|
||||
eventspace are stopped, and all enqueued callbacks are removed.
|
||||
Attempting to create a new window, timer, or explicitly queued event
|
||||
in a shut-down eventspace raises the @scheme[exn:misc] exception.
|
||||
the @tech[#:doc reference-doc]{current custodian}. When a custodian
|
||||
shuts down an eventspace, all frames and dialogs associated with the
|
||||
eventspace are destroyed (without calling @method[top-level-window<%>
|
||||
can-close?] or @xmethod[top-level-window<%> on-close]), all timers
|
||||
in the eventspace are stopped, and all enqueued callbacks are
|
||||
removed. Attempting to create a new window, timer, or explicitly
|
||||
queued event in a shut-down eventspace raises the @scheme[exn:misc]
|
||||
exception.
|
||||
|
||||
An eventspace is a @techlink{synchronizable event} (not to be confused
|
||||
with a GUI event), so it can be used with @scheme[sync]. As a
|
||||
synchronizable event, an eventspace is in a blocking state when a
|
||||
frame is visible, a timer is active, a callback is queued, or a
|
||||
@scheme[menu-bar%] is created with a @scheme['root] parent. (Note
|
||||
that the blocking state of an eventspace is unrelated to whether an
|
||||
event is ready for dispatching.)
|
||||
An eventspace is a @techlink[#:doc reference-doc]{synchronizable
|
||||
event} (not to be confused with a GUI event), so it can be used with
|
||||
@scheme[sync]. As a synchronizable event, an eventspace is in a
|
||||
blocking state when a frame is visible, a timer is active, a callback
|
||||
is queued, or a @scheme[menu-bar%] is created with a @scheme['root]
|
||||
parent. (Note that the blocking state of an eventspace is unrelated
|
||||
to whether an event is ready for dispatching.)
|
||||
|
||||
@subsection[#:tag "mr:evtcontjump"]{Exceptions and Continuation Jumps}
|
||||
@subsection[#:tag "evtcontjump"]{Exceptions and Continuation Jumps}
|
||||
|
||||
Whenever the system dispatches an event, the call to the handler
|
||||
procedure is wrapped so that full continuation jumps are not allowed
|
||||
|
|
Loading…
Reference in New Issue
Block a user