                         formsedit.help

In the current version, 2.3, formsedit has the TextPort
keybindings for text-editing commands, and it has TextPort's
selection model (primary and secondary).  However, it also has
a Mac-like interface: the menubar follows the Apple guidelines,
and various option keys are bound to editing and
file-manipulation functions.  The "Clipboard" is the same as
the secondary selection.  The following table describes the menu
items and their keyboard equivalents.  The notation "oA" means
"option-A"; on some keyboards, the Option key is labeled "Compose
Character" on an LK201 keyboard.

    (Quill pen icon)
        About ...        shows info about this version
        Help (oH)        shows this file. (There are two keyboard
                         equivalents: option-H and the key labeled
                         "Help".)
    File
        New (oN)         creates new editor and result views
        Open (oO)        opens an existing .fv file
        Close            closes the editor and result views
        Save (oS)        saves the current .fv file
        Save As ...      allows you to choose a name for the file
        Revert To Saved  discards edits since the last Save
        PP setup...      allows you to change the width used by
                         the prettyprinter
        PPrint (oP)      prettyprints the form (it does NOT send
                         the file to a hardcopy printer)
        Quit (oQ)        stops the application, after notifying you
                         about an unsaved edits
    Edit
        Undo (oZ)        restores the previous state, up to the last Save
        Cut (oX)         deletes the [primary] selection and saves it
                         in the Clipboard
        Copy (oC)        copies the [primary] selection into the
                         Clipboard
        Paste (oV)       insert the contents of the Clipboard
        Clear            deletes the current selection
        Select All       selects the entire text

                                Rescreen
This menu allows you to move the editor and result views to
another screen on your display, since dragging across screens
is not supported by the X server.  If your display has only
one screen, this menu will be inactive. 

                                 Do It
This is a button, not a menu.  (The keyboard equivalent on an
LK201 is the large key labeled "Do".)  It invokes the FormsVBT
parser and changes the display in the result view, unless there
are errors.

                                Special
This is a menu of miscellaneous items, intended for
"specialists".  The only item at the moment is "Show the named
VBTs", which displays a list of all the named sub-forms (e.g.,
"%StartButton") along with their Modula-3 types (e.g.,
"FVTypes.ButtonVBT") and shapes (horizontal [lo, pref, hi],
vertical [lo, pref, hi]).  An asterisk indicates that there is
a procedure attached to this interactor.

NOTES

The result view uses the same display as the editor view, but it
is always aligned in the northwest corner of the screen.  You can
drag it elsewhere on the screen, or move it to another screen via
the "Rescreen" menu in the editor window. (The "Rescreen" button
is grayed-out on a one-screen display.)

The language interpreted by formsedit (and the Modula-3 FormsVBT
runtime interface) is defined in the FormsVBT Reference Manual.
Some of the properties can be changed at runtime.
    
The following universal properties are supported:

        BgColor
        Color
        DarkShadow
        Font
        Labelfont
        LightShadow
        Name
        ShadowSize

A Macro definition can appear anywhere, as if it were a
universal property. The syntax for defining a macro is
    
        (Macro <name> [BOA] <formals> <expression>)
            Example:
                (Macro Boxed (x)
                  `(Border (Pen 2) (Rim (Pen 16) ,x)))
            The syntax for calling a macro is
                (<name> (<formal> <actual>) (<formal> <actual>) ...)
            Example:
                (Boxed (x (Text (BgColor "Red") "Warning")))
            That expands into
                (Border (Pen 2)
                    (Rim (Pen 16)
                        (Text (BgColor "Red") "Warning"))))
            If the keyword BOA ("by order of arguments") appears
            in the macro definition, then the arguments are
            positional and not named. Example:
                (Macro Ht BOA (n v) `(Shape (Height ,n) ,v))
            Given that definition, (Ht 20 (Button "Go!")) expands
            into (Shape (Height 20) (Button "Go!"))
            
            Macros must be defined before they are called. The effect
            of using a macro to redefine an existing name (e.g., VBox)
            is undefined. The expressions should expand into legal
            forms, including Macros.  Nested backquotes are permitted.
            Within a backquote, you may use "," to insert a value,
            or ",@" to append a list of values.  Example:
                (Macro V (items) `(VBox (Color "Red") ,@items))
                (V (items ("abc" "def")))
            The second form expands into
                (VBox (Color "Red") "abc" "def")

Font and LabelFont take string-arguments, e.g., 

    "fixed"
    "-*-new century schoolbook-*-r-*-*-*-120-*-*-*-*-*-*"
    
They also take their own property lists for the individual
metrics:  Foundry, Family, WeightName, Slnt, Width, AdStyle,
PixelSize, PointSize, HRes, VRes, Spacing, AvgWidth, Registry,
and Encoding.  PixelSize and PointSize are cardinals; all the
others are text.  Most users will specify only Family,
WeightName, and PointSize.  Examples:

    (Font (Family "courier") (WeightName "Bold"))
    (LabelFont (Family "helvetica") (PointSize 240))

The chart below lists the components and the properties they support.
See the appendix of the FormsVBT Reference Manual for details.

        Bar => SizeRange
        Boolean => Inverting, CheckMark, CheckBox, MenuStyle, Value
        Border => Pen, Pattern
        Browser => Value, Select, Items, From, Quick
        Button    
        Choice => Inverting, CheckMark, CheckBox, MenuStyle, Value
        CloseButton => For
        DirMenu => For [filebrowser]
        FileBrowser => ReadOnly, Suffixes
        Fill => SizeRange
        Filter => Passive, Dormant, Vanish, Active
        Frame => ShadowStyle
        Generic
        Glue => SizeRange
        Guard
        HBox
        HPackSplit => HGap, VGap, Background
        HTile => Targets
        Helper => For [filebrowser]
        Insert => Main
        LinkButton => To
        Macro
        MButton
        Menu
        MenuBar
        MultiBrowser => Value, Select, Items, From, Quick
        Numeric => AllowEmpty, HideButtons, Value, Min, Max
        PageButton => For [TSplit], Back
        Pixmap => Main
        PopButton => For [ZChild or ZChassis]
        PopMButton => For [ZChild or ZChassis]
        Radio => Value
        Ridge => Main, ShadowStyle
        Rim => Pen, Pattern
        Scale => HScale, VScale
        Scroller => Vertical, Min, Max, Value, Thumb, Step
        Shape => Height, Width, Main
        Source
        TSplit => Value, Which, Circular, Flex
        Target
        Text => Main, Margin, LeftAlign, RightAlign, From
        TextArea => Value, ReadOnly, ExpandOnDemand, From
        TextEdit => From, Value, ReadOnly
        Texture => Main, LocalAlign
        TrillButton
        TypeIn => Value, ReadOnly, Scrollable
        VBox
        VPackSplit => HGap, VGap, Background
        VTile => Targets
        Viewport => Fixed, Step, Horizontal, Vertical, ScrollStyle,
                    UnrelatedShape
        ZBackground
        ZChassis => At, Open, Title, NoClose
        ZChild   => At, Open
        ZGrow
        ZMove
        ZSplit

Copyright 1992 Digital Equipment Corporation.
Distributed only by permission.
Last modified on Sun Jul 19 22:15:28 PDT 1992 by meehan
