From 62d301e87ef11be5d2728cca199c6c172d56e826 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 1 Feb 2008 16:10:08 +0000 Subject: [PATCH] more drs scribble svn: r8495 --- collects/scribblings/drscheme/custom.scrbl | 93 ++++ collects/scribblings/drscheme/drscheme.scrbl | 2 + .../drscheme/interface-essentials.scrbl | 182 +++----- .../scribblings/drscheme/interface-ref.scrbl | 399 ++++++++++++++++++ collects/scribblings/drscheme/languages.scrbl | 13 +- 5 files changed, 566 insertions(+), 123 deletions(-) create mode 100644 collects/scribblings/drscheme/custom.scrbl create mode 100644 collects/scribblings/drscheme/interface-ref.scrbl diff --git a/collects/scribblings/drscheme/custom.scrbl b/collects/scribblings/drscheme/custom.scrbl new file mode 100644 index 0000000000..435b9dad36 --- /dev/null +++ b/collects/scribblings/drscheme/custom.scrbl @@ -0,0 +1,93 @@ +#lang scribble/doc +@(require "common.ss" + scribble/struct) + +@(define spacer (hspace 1)) + +@(define-syntax-rule (print-table [expr cons qq wr] ...) + (*print-table (list (list spacer (scheme expr) spacer (schemeresult cons) spacer (schemeresult qq) spacer (schemeresult wr)) ...))) + +@(define (*print-table rows) + (make-table + #f + (cons + (list (make-flow (list (make-paragraph (list spacer)))) + (make-flow (list @t{Input expression})) + (make-flow (list (make-paragraph (list spacer)))) + (make-flow (list @t{@onscreen{Constructor}})) + (make-flow (list (make-paragraph (list spacer)))) + (make-flow (list @t{@onscreen{Quasiquote}})) + (make-flow (list (make-paragraph (list spacer)))) + (make-flow (list @t{@onscreen{write}}))) + (map (lambda (row) + (map (lambda (e) + (make-flow (list (make-paragraph (list e))))) + row)) + rows)))) + +@title[#:tag "custom" #:style 'toc]{Customizing Language Details} + +Different languages supported by DrScheme offer different possible +customizations through the @onscreen{Show Details} button in the +dialog opened by @menuitem["Language" "Choose Language..."]. + +This chapter scribes some of the most common customizations that are +available, though the actual set available depends on each language, +which is in turn extensible through plug-ins. + +@local-table-of-contents[] + +@; ---------------------------------------- + +@section[#:tag "output-syntax"]{Output Syntax} + +@section-index["printing format"] + +Many Scheme languages support a @onscreen{Output Syntax} choice that +determines how evaluation results are printed in the +@tech{interactions window}. This setting also applies to output +generated by calling @scheme[print] explicitly. + +The following table illustrates the difference between the different +output styles: + +@print-table[ +[(cons 1 2) (cons 1 2) `(1 . 2) (1 . 2)] +[(list 1 2) (list 1 2) `(1 2) (1 2)] +['(1 2) (list 1 2) `(1 2) (1 2)] +[(list (void)) (list (void)) `(,(void)) (#,(@schemeresultfont "#"))] +[`(,(void)) (list (void)) `(,(void)) (#,(schemeresultfont "#"))] +[(vector 1 2 3) (vector 1 2 3) (vector 1 2 3) #(1 2 3)] +[(box 1) (box 1) (box 1) #&1] +[(lambda (x) x) (lambda (a1) ...) (lambda (a1) ...) #,(schemeresultfont "#")] +['sym 'sym 'sym sym] +[(make-s 1 2) (make-s 1 2) (make-s 1 2) #(struct:s 1 2)] +['() empty `() ()] +[add1 add1 add1 #,(schemeresultfont "#")] +[(delay 1) (delay ...) (delay ...) #,(schemeresultfont "#")] +[(regexp "a") (regexp "a") (regexp "a") #rx"a"] +] + +The @as-index{@onscreen{Constructor} output} mode treats +@scheme[cons], @scheme[vector], and similar primitives as value +constructors, rather than functions. It also treats @scheme[list] as +shorthand for multiple @scheme[cons]'s ending with the empty list. +@onscreen{Constructor} output is especially valuable for beginning +programmers, because output values look the same as input values. + +The @as-index{@onscreen{Quasiquote} output} mode is like +@onscreen{Constructor} output, but it uses @scheme[quasiquote] +(abbreviated with @litchar{`}) to print lists, and it uses +@scheme[unquote] (abbreviated with @litchar{,}) to escape back to +@onscreen{Constructor} printing as needed. This mode provides the same +benefit as @onscreen{Constructor} output, in that printed results are +expressions, but it is more convenient for many kinds of data, +especially data that represents expressions. + +The @as-index{@onscreen{write} output} mode corresponds to traditional +Scheme printing via the @scheme[write] procedure. + +The @as-index{@onscreen{current-print} output} mode, when available, +prints results using the value of the @scheme[current-print] +parameter, which allows the programming running in DrScheme to control +its own output format. diff --git a/collects/scribblings/drscheme/drscheme.scrbl b/collects/scribblings/drscheme/drscheme.scrbl index 93d2dc0659..86f1eaa5bb 100644 --- a/collects/scribblings/drscheme/drscheme.scrbl +++ b/collects/scribblings/drscheme/drscheme.scrbl @@ -12,6 +12,8 @@ PLT Scheme programming languages. @include-section["interface-essentials.scrbl"] @include-section["languages.scrbl"] +@include-section["custom.scrbl"] +@include-section["interface-ref.scrbl"] @; ---------------------------------------------------------------------- diff --git a/collects/scribblings/drscheme/interface-essentials.scrbl b/collects/scribblings/drscheme/interface-essentials.scrbl index 72286543cd..63e9234328 100644 --- a/collects/scribblings/drscheme/interface-essentials.scrbl +++ b/collects/scribblings/drscheme/interface-essentials.scrbl @@ -3,14 +3,15 @@ scribble/decode scribble/eval scribble/struct - (for-label htdp/convert)) + (for-label htdp/convert + scheme/gui/base)) @(define (ioinputfont . s) (apply tt s)) @(define (iooutputfont . s) (make-element "schemestdout" (decode-content s))) -@title[#:tag "interface-essentials"]{Interface Essentials} +@title[#:tag "interface-essentials" #:style 'toc]{Interface Essentials} The DrScheme window has three parts: a row of buttons at the top, two editing panels in the middle, and a status line at the bottom. @@ -43,9 +44,11 @@ currently evaluating any expression. The @as-index{recycling icon} flashes while DrScheme is ``recycling'' internal resources, such as memory. +@local-table-of-contents[] + @; ---------------------------------------------------------------------- -@section{Buttons} +@section[#:tag "buttons"]{Buttons} The left end of the row of buttons in DrScheme contains a miniature button with the @index['("filename button")]{current file's @@ -397,7 +400,8 @@ second @schemeresult[5] is colored blue, as usual for a result printed by DrScheme. (The underscore indicates the location of the blinking caret.) -Output goes into the interaction window directly. If you run the program +Output goes into the @tech{interactions window} directly. If you run +the program @schememod[ scheme @@ -465,7 +469,62 @@ inserts a newline character into the input stream: @; ---------------------------------------------------------------------- -@section{Creating Executables} +@section{Graphical Syntax} + +In addition to normal textual program, DrScheme supports certain +graphical elements as expressions within a program. Plug-in tools can +extend the available graphical syntax, but this section describes some +of the more commonly used elements. + +@subsection{Images} + +DrScheme's @menuitem["Insert" "Insert Image..."] menu item lets you +select an image file from disk (in various formats such as GIF, PNG, +and BMP), and the image is inserted at the current editing caret. + +As an expression an image behaves like a number or string constant: it +evaluates to itself. DrScheme's @tech{interactions window} knows how +to draw image-value results or images displayed via @scheme[print]. + +A program can manipulate image values in various ways, such as using +the @schememodname[htdp/image] library or as an +@schememodname[image-snip%] value. + +@subsection{XML Boxes and Scheme Boxes} + +DrScheme has special support for XML concrete syntax. The +@menuitem["Special" "Insert XML Box"] menu item inserts an embedded +editor into your program. In that embedded editor, you type XML's +concrete syntax. When a program containing an XML box is evaluated, +the XML box is translated into an @deftech{x-expression} (or +@deftech{xexpr}), which is an s-expression representation of an XML +expression. Each xexpr is a list whose first element is a symbol +naming the tag, second element is an association list representing +attributes and remaining elements are the nested XML expressions. + +XML boxes have two modes for handling whitespace. In one mode, all +whitespace is left intact in the resulting xexpr. In the other mode, +any tag that only contains nested XML expressions and whitespace has +the whitespace removed. You can toggle between these modes by +right-clicking or Control-clicking (Mac OS X) on the top portion of +the XML box. + +In addition to containing XML text, XML boxes can also +contain Scheme boxes. Scheme boxes contain Scheme +expressions. These expressions are evaluated and their +contents are placed into the containing XML box's xexpr. +There are two varieties of Scheme box: the standard Scheme +box and the splicing Scheme box. The standard Scheme box +inserts its value into the containing xexpr. The contents of +the splice box must evaluate to a list and the elements of +the list are ``flattened'' into the containing xexpr. +Right-clicking or control-clicking (Mac OS X) on the top of a Scheme +box opens a menu to toggle the box between a Scheme box and +a Scheme splice box. + +@; ---------------------------------------------------------------------- + +@section[#:tag "create-exe"]{Creating Executables} DrScheme's @onscreen{Create Executable...} menu item lets you create an executable for your program that you can start without first @@ -521,7 +580,7 @@ Each type has advantages and disadvantages: In general, DrScheme's @drlang{Module} language gives you the most options. Most other languages only allow one type of executable. The teaching langauges create stand-alone executables in -distributions. The lagacy languages create launchers. +distributions. The legacy languages create launchers. @bold{Tip:} Disable debugging in the language dialog before creating your executable. With debugging enabled, you will see a stack trace @@ -530,114 +589,3 @@ disable debugging, open the language dialog, click the @onscreen{Show Details} button, and select @onscreen{No debugging or profiling}, if it is available. -@;{ - -@section[#:tag "drscheme:sec:printing"]{Printed Results} - -\index{output format}\index{printing format}\index{read-eval-print loop} - -This section describes the different formats that DrScheme -uses for printing results in the interactions window. Each -of the different settings here also apply to the -@scheme[print] primitive. That is, printing in the -interactions window is identical to output produced by the -@scheme[print] primitive. - -@subsection[#:tag "drscheme:sec:printing:cons"]{Constructor-style Output} - -\index{constructor-style output} -% -{\drscheme}'s @defterm{constructor-style output} treats @scheme[cons], - @scheme[vector], and similar primitives as value constructors, rather - than functions. It also treats @scheme[list] as shorthand for multiple - @scheme[cons]'s ending with the empty list. Constructor-style printing - is valuable for beginning computer science students, because output - values look the same as input values. - -Results printed in DrScheme's interactions window using - constructor-style printing look different than results printed in - traditional Scheme implementations, which use @scheme[write] to print - results. The table in Figure~\ref{fig:constructor-printing} shows the - differences between values printed in constructor style and values - printed with @scheme[write]. - -\begin{figure} -\begin{center} -\input{drs-constructor-style-examples.tex} -\end{center} -\caption{Comparison of constructor-style output to @scheme[write]}\label{fig:constructor-printing} -\end{figure} - -@subsection[#:tag "drscheme:sec:printing:quasi"]{Quasiquote-style Output} - -\index{quasiquote-style output} -% -Constructor-style output is inconvenient for printing S-expression - results that represent programs. For example, the value @scheme['(lambda - (x) (lambda (y) (+ x y)))] prints as -% -\begin{center} -@scheme[(list 'lambda (list 'x) (list 'lambda (list 'y) (list '+ 'x 'y)))] -\end{center} -% -with constructor-style printing. - -DrScheme's @defterm{quasiquote-style output} combines the - input--output invariance of constructor-style printing with the - S-expression readability of @scheme[write]. It uses @scheme[quasiquote] to - print lists, and uses @scheme[unquote] to escape back to constructor - style printing for non-lists and non-symbols. - -With quasiquote-style printing, the above example prints as: -% -\begin{center} -@scheme[`(lambda (x) (lambda (y) (+ x y)))] -\end{center} - -This example: -\begin{center} -@scheme[(list 'lambda (list 'x) (box '(lambda (y) (+ x y))))] -\end{center} -in quasiquote-style printing prints as: -\begin{center} -@scheme[`(lambda (x) ,(box `(lambda (y) (+ x y))))] -\end{center} - - -@section{XML} -\label{drscheme:sec:xml} - -\index{XML} -% -DrScheme has special support for XML concrete syntax. The -@onscreen{Special} menu's @onscreen{Insert XML Box} menu inserts an -embedded editor into your program. In that embedded editor, -you type XML's concrete syntax. When a program containing an -XML box is evaluated, the XML box is translated into an -x-expression (or xexpr). Xexprs are s-expression -representation for XML expressions. Each xexpr is a list -whose first element is a symbol naming the tag, second -element is an association list representing attributes and -remaining elements are the nested XML expressions. - -XML boxes have two modes for handling whitespace. In one -mode, all whitespace is left intact in the resulting xexpr. -In the other mode, any tag that only contains nested XML -expressions and whitespace has the whitespace removed. You -can toggle between these modes by right-clicking or -control-clicking (Mac OS X) on the top portion of the XML box. - -In addition to containing XML text, XML boxes can also -contain Scheme boxes. Scheme boxes contain Scheme -expressions. These expressions are evaluated and their -contents are placed into the containing XML box's xexpr. -There are two varieties of Scheme box: the standard Scheme -box and the splicing Scheme box. The standard Scheme box -inserts its value into the containing xexpr. The contents of -the splice box must evaluate to a list and the elements of -the list are ``flattened'' into the containing xexpr. -Right-clicking or control-clicking (Mac OS X) on the top of a Scheme -box opens a menu to toggle the box between a Scheme box and -a Scheme splice box. - -} \ No newline at end of file diff --git a/collects/scribblings/drscheme/interface-ref.scrbl b/collects/scribblings/drscheme/interface-ref.scrbl new file mode 100644 index 0000000000..45e612b03f --- /dev/null +++ b/collects/scribblings/drscheme/interface-ref.scrbl @@ -0,0 +1,399 @@ +#lang scribble/doc +@(require "common.ss" + scribble/struct) + +@(define (defmenuitem . s) + (let ([mi (apply onscreen s)]) + @index*[(list (string-append (element->string mi) " menu item")) + (list (elem mi " menu item"))]{@|mi| :})) + +@(define lam-str "\u03BB") + +@title{Interface Reference} + +@section{Menus} + +@subsection{@onscreen{File}} + +@itemize{ + + @item{@defmenuitem{New} Creates a new DrScheme window.} + + @item{@defmenuitem{Open...} Opens a find-file dialog for choosing + a file to load into a @tech{definitions window}.} + + @item{@defmenuitem{Open Recent} Lists recently opened + files. Choosing one of them opens that file for editing.} + + @item{@defmenuitem{Install PLT File...} Opens a dialog asking for the + location of the @filepath{.plt} file (either on the local disk or + on the web) and installs the contents of the file.} + + @item{@defmenuitem{Revert} Re-loads the file that is currently in the + @tech{definitions window}. All changes since the file was last saved + will be lost.} + + @item{@defmenuitem{Save Definitions} Saves the program in the + @tech{definitions window}. If the program has never been saved + before, a save-file dialog appears.} + + @item{@defmenuitem{Save Definitions As...} Opens a save-file dialog for + choosing a destination file to save the program in the definitions + window. Subsequent saves write to the newly-selected file.} + + @item{@defmenuitem{Save Other} Contains these sub-items + @itemize{ + + @item{@defmenuitem{Save Definitions As Text...} Like @onscreen{Save + Definitions As...}, but the file is saved in plain-text format (see + @secref["drscheme-file-formats"]). Subsequent saves also write in + plain-text format.} + + @item{@defmenuitem{Save Interactions} Saves the contents of the interactions + window to a file. If the interaction constants have never been saved + before, a save-file dialog appears.} + + @item{@defmenuitem{Save Interactions As...} Opens a save-file dialog for + choosing a destination file to save the contents of the interactions + window. Subsequent saves write to the newly-selected file.} + + @item{@defmenuitem{Save Interactions As Text...} Like @onscreen{Save + Interactions As...}, but the file is saved in plain-text format (see + @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 + windows, organized by executions. In a directory of your choosing, + DrScheme saves files with the names @filepath{01-definitions}, + @filepath{01-interactions}, @filepath{02-definitions}, + @filepath{02-interactions}, @|etc| as you interact with various + programs.} + + @item{@defmenuitem{Print Definitions...} Opens a dialog for printing + the current program in the @tech{definitions window}.} + + @item{@defmenuitem{Print Interactions...} Opens a dialog for printing the + contents of the @tech{interactions window}.} + +@item{@defmenuitem{Search in Files...} Opens a dialog where you can + specify the parameters of a multi-file search. The results of the + search are displayed in a separate window.} + + @item{@defmenuitem{Close} Closes this DrScheme window. If this window + is the only open DrScheme window, then DrScheme quits, except under + Mac OS X.} + + @item{{@onscreen{Quit} or @onscreen{Exit}} Exits DrScheme. (Under Mac + OS X, this menu item is in the Apple menu.)} + +} + +@; ---------------------------------------- + +@subsection{@onscreen{Edit}} + +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{ + + @item{@defmenuitem{Undo} Reverses an editing action. Each window + maintains a history of actions, so multiple @onscreen{Undo} + operations can reverse multiple editing actions.} + + @item{@defmenuitem{Redo} Reverses an @onscreen{Undo} action. Each + window (and boxed-subwindow) maintains its own history of + @onscreen{Undo} actions, so multiple @onscreen{Redo} operations can + reverse multiple @onscreen{Undo} actions.} + + @item{@defmenuitem{Cut} Copies the selected text to the clipboard and + deletes it from the window.} + + @item{@defmenuitem{Copy} Copies the selected text to the clipboard.} + + @item{@defmenuitem{Paste} Pastes the current clipboard contents into the + window.} + + @item{@defmenuitem{Delete} or @defmenuitem{Clear} Deletes the selected text.} + + @item{@defmenuitem{Select All} Highlights the entire text of the buffer.} + + @item{@defmenuitem{Wrap Text} Toggles between wrapped text and + unwrapped text in the window.} + + @item{@defmenuitem{Find...} Opens a search dialog or, depending on the + preferences, an interactive searching window attached to the frame.} + + @item{@defmenuitem{Find Again} Finds the next occurrence of the text + that was last searched for.} + +@item{@defmenuitem{Replace & Find Again} Replaces the selection with the + replace string (if it matches the find string) and finds the next + occurrence of the text that was last searched for.} + +@item{@defmenuitem{Keybindings} +@itemize{ + +@item{@defmenuitem{Show Active Keybindings} Shows all of the + keybindings available in the current window.} + +@item{@defmenuitem{Add User-defined Keybindings...} Choosing this menu + item opens a file dialog where you can select a file containing + Scheme-definitions of keybindings. See @secref["defining-shortcuts"] + for more information.} + +}} + + @item{@defmenuitem{Preferences...} Opens the preferences dialog. See + @secref["prefs-explanation"]. (Under Mac OS X, this menu item is in + the Apple menu.)} } + +@; ---------------------------------------- + +@subsection{@onscreen{View}} + +One each of the following show/hide pairs of menu items +appears at any time. + +@itemize{ + + @item{@defmenuitem{Show Definitions} Shows the definitions window.} + + @item{@defmenuitem{Hide Definitions} Hides the definitions window.} + + @item{@defmenuitem{Show Interactions} Shows interactions window.} + + @item{@defmenuitem{Hide Interactions} Hides interactions window.} + + @item{@defmenuitem{Show Program Contour} Shows a ``20,000 foot'' + overview window along the edge of the DrScheme + window. Each pixel in this window corresponds to a letter + in the program text.} + + @item{@defmenuitem{Hide Program Contour} Hides the contour window.} + + @item{@defmenuitem{Show Module Browser} Shows the module DAG rooted + at the currently opened file in DrScheme.} + + @item{@defmenuitem{Hide Module Browser} Hides the module browser.} + + @item{@defmenuitem{Show Toolbar} Makes the toolbar (along the top of + DrScheme's window) and the status line (along the bottom) visible.} + + @item{@defmenuitem{Hide Toolbar} Hides the toolbar (along the top of + DrScheme's window) and the status line (along the bottom).} + + @item{@defmenuitem{Show Profile} Shows the current profiling + report. This menu is useful only if you have enabled profiling in + the @onscreen{Choose Language...} dialog's @onscreen{Details} + section. Profiling does not apply to all languages.} + + @item{@defmenuitem{Hide Profile} Hides any profiling + information currently displayed in the DrScheme window.} + + @item{@defmenuitem{Show Tracing} Shows a trace of functions called since + the last time @onscreen{Run} was clicked. This menu is useful only if + you have enabled tracing in the @onscreen{Choose Language...} dialog's + @onscreen{Details} section. Profiling does not apply to all languages.} + + @item{@defmenuitem{Hide Tracing} Hides the tracing display.} + + @item{@defmenuitem{Split} Splits the current window in half to + allow for two different portions of the current window to + be visible simultaneously.} + + @item{@defmenuitem{Collapse} If the window has been split before, this + 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. + +@; ---------------------------------------- + +@subsection{@onscreen{Language}} + +@itemize{ + + @item{@defmenuitem{Choose Language...} Opens a dialog for selecting + the current evaluation language. Click @onscreen{Run} to make the + language active in the interactions window. See + @secref["choose-language"] for more information about the + languages.} + + + @item{@defmenuitem{Add Teachpack...} Opens a find-file dialog for + choosing a teachpack to extend the current language. Click + @onscreen{Run} to make the teachpack available in the interactions + windows. See @secref["extending-drscheme"] for information on + creating teachpacks.} + +@item{@defmenuitem{Clear All Teachpacks} Clears all of the current + 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. + +@; ---------------------------------------- + +@subsection{@onscreen{Scheme}} + +@itemize{ + + @item{@defmenuitem{Run} Resets the interactions window and runs the + program in the definitions window.} + + @item{@defmenuitem{Break} Breaks the current evaluation.} + + @item{@defmenuitem{Kill} Terminates the current evaluation.} + +@item{@defmenuitem{Clear Error Highlight} Removes the red +background that signals the source location of an error.} + + @item{@defmenuitem{Create Executable...} Creates a separate launcher + for running your program. See @secref["executables"] for more + info.} + +@item{@defmenuitem{Module Browser...} Prompts for a file and + then opens a window showing the module import structure + for the module import DAG starting at the selected module. + + The module browser window contains a square for each + module. The squares are colored based on the number of + lines of code in the module. If a module has more lines of + code, it gets a darker color. + + In addition, for each normal import, a blue line drawn is + from the module to the importing module. Similarly, purple + lines are drawn for each for-syntax import. In the initial + module layout, modules to the left import modules to the + right, but since modules can be moved around + interactively, that property might not be preserved. + + To open the file corresponding to the module, right-click or + control-click (Mac OS X) on the box for that module.} + + @item{@defmenuitem{Reindent} Indents the selected text according to + the standard Scheme formatting conventions. (Pressing the Tab key + has the same effect.)} + + @item{@defmenuitem{Reindent All} Indents all of the text in either + the definitions or interactions window, depending on the location of + the selection or blinking caret.} + + @item{@defmenuitem{Comment Out with Semicolons} Puts @litchar{;} + characters at each of the beginning of each selected line of text.} + + @item{@defmenuitem{Comment Out with a Box} Boxes the selected + text with a comment box.} + + @item{@defmenuitem{Uncomment} Removes all @litchar{;} characters at + the start of each selected line of text or removes a comment box + around the text. Uncommenting only removes a @litchar{;} if it + appears at the start of a line and it only removes the first + @litchar{;} on each line.} + +} + +@subsection{@onscreen{Insert}} + +@itemize{ + + @item{@defmenuitem{Insert Comment Box} Inserts a box that is ignored + by DrScheme; use it to write comments for people who read your + program.} + + @item{@defmenuitem{Insert Image...} Opens a find-file dialog for + selecting an image file in GIF, BMP, XBM, XPM, PNG, or JPG + format. The image is treated as a value.} + + @item{@defmenuitem{Insert Fraction...} Opens a dialog for a + mixed-notation fraction, and inserts the given fraction into the + current editor.} + + @item{@defmenuitem{Insert Large Letters...} Opens a dialog for a line of + text, and inserts a large version of the text (using semicolons and + spaces).} + + @item{@defmenuitem{Insert @|lam-str|} Inserts the symbol @|lam-str| + (as a Unicode character) into the program. The @|lam-str| symbol is + normally bound the same as @scheme[lambda].} + + @item{@defmenuitem{Insert Java Comment Box} Inserts a box that is + ignored by DrScheme. Unlike the @onscreen{Insert Comment Box} menu + item, this is designed for the ProfessorJ language levels. See + @secref["profj"].} + + @item{@defmenuitem{Insert Java Interactions Box} Inserts a box that + will allows Java expressions and statements within Scheme + programs. The result of the box is a Scheme value corresponding to + the result(s) of the Java expressions. At this time, Scheme values + cannot enter the box. The box will accept one Java statement or + expression per line.} + + @item{@defmenuitem{Insert XML Box} Inserts an XML; see + @secref["xml-boxes"] for more information.} + + @item{@defmenuitem{Insert Scheme Box} Inserts a box to contain Scheme + code, typically used inside an XML box; see @secref["xml-boxes"].} + + @item{@defmenuitem{Insert Scheme Splice Box} Inserts a box to contain Scheme + code, typically used inside an XML box; see also @secref["xml-boxes"].} + + @item{@defmenuitem{Insert Pict Box} Creates a box for generating a + Slideshow picture. Inside the pict box, insert and arrange Scheme + boxes that produce picture values.} + +} + +@; ---------------------------------------- + +@subsection{@onscreen{Windows}} + +@itemize{ + + @item{@defmenuitem{Bring Frame to Front...} Opens a window that lists + all of the opened DrScheme frames. Selecting one of them brings the + window to the front.} + + @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 +brings the corresponding window to the front. + +@; ---------------------------------------- + +@subsection{@onscreen{Help}} + +@itemize{ + + @item{@defmenuitem{Help Desk} Opens the Help Desk. This is the clearing + house for all documentation about DrScheme and its language.} + + @item{@defmenuitem{About DrScheme...} Shows the credits for DrScheme.} + + @item{@defmenuitem{Related Web Sites} Provides links to related web sites.} + + @item{@defmenuitem{Tool Web Sites} Provides links to web sites for + installed tools.} + + @item{@defmenuitem{Interact with DrScheme in English} Changes DrScheme's + interface to use English; the menu item appears only when the + current language is not English. Additional menu items switch + DrScheme to other languages.} + +} + diff --git a/collects/scribblings/drscheme/languages.scrbl b/collects/scribblings/drscheme/languages.scrbl index 1493ffd913..d7545f8896 100644 --- a/collects/scribblings/drscheme/languages.scrbl +++ b/collects/scribblings/drscheme/languages.scrbl @@ -53,12 +53,13 @@ without a @hash-lang[] prefix: DrScheme. It evaluates a program in the same way as @scheme[load], and it starts by importing the following modules: @schememodname[mzscheme], @schememodname[scheme/gui/base], - @schememodname[mzlib/etc], @schememodname[mzlib/file], - @schememodname[mzlib/list], @schememodname[mzlib/unit], - @schememodname[mzlib/include], @schememodname[mzlib/defmacro], - @schememodname[mzlib/pretty], @schememodname[mzlib/string], - @schememodname[mzlib/thread], @schememodname[mzlib/math], - @schememodname[mzlib/match], and @schememodname[mzlib/shared].} + @schememodname[mzlib/class], @schememodname[mzlib/etc], + @schememodname[mzlib/file], @schememodname[mzlib/list], + @schememodname[mzlib/unit], @schememodname[mzlib/include], + @schememodname[mzlib/defmacro], @schememodname[mzlib/pretty], + @schememodname[mzlib/string], @schememodname[mzlib/thread], + @schememodname[mzlib/math], @schememodname[mzlib/match], and + @schememodname[mzlib/shared].} @item{The @as-index{@drlang{Swindle} language} starts with the same bindings as @schememodname[swindle], and evaluates the program like