Look & Feel 3.2 Help File

Copyright (c) 1989, 1990 by Oakland Group, Inc.
ALL RIGHTS RESERVED.

	Revision History:
	-----------------
	11/14/89 jmd	fixed main menu screen
	  2/2/90 jql	added hi-char information
	 2/15/90 jql	added new field functions for lnf 3.2
	 2/19/90 jql	added Field Edit box's Ctrl-N feature
	 6/27/90 jql	added screen on mouse w/ block commands and field marking
					added the blocks/mouse screen to the index
					added a reference to mousing in the Field Edit screen
					added a reference to mousing in the intro to Block commands
					added a reference to mousing in the Block menu screen
					added a reference to mousing in the Mouse Handler screen
					added Cfg file field to the Global Settings box screen
					reorganized the Global Settings box screen
					gave the Screen Edit screen cross references for ted parms 
					reorganized Screen Edit box screen
					added information on Ansi code to Code Generate box screen
					added bd_mouse2 to the list of standard borders
					added third screen for standard borders
					changed "Line" to "Line Drawing" in the Tools menu screen
					changed this revision history to say lnf 3.2 (not 3.1)
	 8/10/90 jql	added detail to the Screen Open box & reference to "bigsed"				
	 8/14/90 jql	added screen, quick key, menu ref to Screen-Freshen
	 8/14/90 jql	added information to Disk-Save and Screen-Open about not
					using periods in screen names; also added cross references;
					added additional information to ted, sed screens
	 8/20/90 jql	fixed alphabetical order of the index (highlighting chars
					was in the wrong place)
	 8/25/90 jdc	preened
	 8/27/90 jdc	preened
	10/30/90 jmd	fixed bottom of first index screen
	12/04/90 jql	added 3.1/3.2 sfile compatibility info to disk-import screen
	12/06/09 jql	fixed bottom and one word of the Screen Freshen help screen
					removed freshen from screen pulldown
					fixed lines in screen pulldown
	12/12/90 jql	added info about idata and ufuncs to field list screen
					added info about idata and field list to ufunc screen
%%
1,0:14
2,0:22
3,0:4
4,0:5
5,0:3
6,0:102
7,0:102
8,0:83
9,0:62
10,0:66
11,0:67
12,0:72
13,0:99
14,0:35
15,0:68
16,0:1
17,0:52
18,0:50
20,0:43
21,0:38
22,0:2
23,0:20
24,0:16
25,0:17
26,0:10
27,0:30
28,0:27
29,0:26
30,0:74
31,0:20
32,0:103
33,0:6
34,0:7
35,0:44
36,0:23
37,0:8
38,0:11
39,0:10
40,0:35
41,0:38
42,0:83
43,0:65
44,0:70
45,0:29
46,0:31
47,0:42
48,0:99
49,0:62
50,0:76
51,0:9
52,0:19
53,0:25
54,0:37
55,0:32
56,0:41
57,0:47
58,0:46
59,0:43
60,0:29
61,0:31
62,0:42
63,0:22
%%
.1
Look & Feel Help
Welcome to the Look & Feel help system.

Each help screen contains keywords which appear in boldface.  These words are
cross references to other help screens which discuss the topics of the boldface
words.  Press Enter while over a particular word or words to pass control to the
new screen.  For instance, you can get information about the Main Menu by
selecting the following boldface words:

@103[Main Menu]

The help system is context-sensitive.  This means that calling help from
different parts of Look & Feel pops up different help screens.

You can move to and select any keyword with the keyboard or with the mouse.
With the keyboard, move with the arrow keys.  With the mouse, place the mouse
cursor over the choice and click it.

To check the help index, select the "Index" field.  If you have called one help
screen from another, return to the calling screen by selecting the "Previous"
field (or pressing Backspace).  To leave help, select the "Exit Help" field.

          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.2
Quick Key Listing

@31[Ctrl-A]  Mark a region and set its color @13[Ctrl-N]  Call next screen or field
@33[Ctrl-B]  Embed one screen in another     @11[Ctrl-O]  Open a new screen
@43[Ctrl-C]  Use a special character         @28[Ctrl-P]  Paste a block at the cursor
@20[Ctrl-E]  Edit a field                    @47[Ctrl-Q]  Quit
@21[Ctrl-F]  Mark a field                    @17[Ctrl-R]  Resize a screen
@45[Ctrl-G]  Go to specified line number     @5[Ctrl-S]  Save a screen
@2[Ctrl-H]  Get a list of Quick Keys        @30[Ctrl-T]  Mark and move region
@60[Ctrl-I]  Toggle INSERT/OVERWRITE mode    @35[Ctrl-U]  Attach a user function
@4[Ctrl-J]  Load a screen                   @34[Ctrl-W]  Attach one screen to another
@26[Ctrl-K]  Mark and copy a region          @27[Ctrl-X]  Mark and cut a region
@42[Ctrl-L]  Draw a line                     @12[Ctrl-Y]  Close the current screen
@16[Ctrl-M]  Move a screen                   @118[Ctrl-Z]  Refresh the screen

@1[F1]      Call Look & Feel's help system  @38[F6]      Load a file to edit
@10[F2]      Edit a screen                   @39[F7]      Search for a word or phrase
@14[F3]      List all screens                @40[F8]      Search for and replace a string
@22[F4]      List fields                     @15[F9]      Simulate a screen's behavior
@22[F5]      Move a field in the field list  @103[F10]     Call Look & Feel's main menu
		or highlight a field character

          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.3
Disk Menu
The Disk submenu of the @103[Main Menu] allows you to import, load, and save
screens, and generate code and symbol tables.


                     ┌─────Load a screen with the Screen Load box.
                     │
   Disk Commands     │ ┌───Save a screen to disk with the Screen Save box.
╔═════════════════╗  │ │
║ @4[Load   (Ctrl-J)] ║ ─┘ │ ┌─Import a screen from @51[Dan Bricklin's Demo]
║ @5[Save   (Ctrl-S)] ║ ───┘ │ program, ASCII, or old versions of Look & Feel.
║ @8[Import         ] ║ ─────┘
║ @6[Code           ] ║ ───────Generate C code from the active screen.
║ @7[Table          ] ║ ─────┐
║ About           ║ ───┐ └─Generate a symbol table for all the screens in
╚═════════════════╝    │   a particular screen file.
                       │
                       └───Find out about the origin of Look & Feel.




          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.4
Screen Load box
Look & Feel stores its screens in @65[sfiles].  To load a screen from an sfile,
call Disk-Load or press Ctrl-J, which places the Screen Load box on the display.

To load a screen, enter the appropriate information in the fields in this
dialogue box and press Enter.  You can press the Plus key to see a list of
available files and screens in the File and Screen fields, respectively.

To manipulate a screen, call the @10[Screen Edit box].  To remove a screen from
the display, use the @12[Screen-Close] command.

To create a new screen, use the @11[Screen-Open] command.










          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.5
Screen Save box
To save a screen to an @65[sfile], use the Disk-Save command, or Ctrl-S, which
pops up the Screen Save box.  This will save the current state of the screen.
A screens basic parameters can be set in the @10[Screen Edit box].

Press Enter to save the screen into its present sfile with its present name.
If you want to give the screen a new name or save it to a new file, enter these
values and press Enter.

You cannot include the "." (period) character in screen names.  If you do this, 
Look & Feel will truncate the name; for instance, the name "input.screen" will 
become "input".  This is because Look & Feel uses the period to indicate that 
a screen is @49[nested].  For instance, if you @33[embed] a @58[text editor] called "my_edit" 
in a data entry @57[screen] called "my_data", Look & Feel will call the text 
editor "my_data.my_edit".

While in the Screen Save box, you can also @63[delete screens].





          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.6
Code Generate box
The Disk-Code command pops up the Code Generate box, for generating code from a 
screen and setting parameters for it.  The code consists of a single function, 
which displays the screen, starts it running, and returns the data to the 
calling function--all using calls to C-scape library.

The top File and Screens fields take the name of the sfile and screen for which
you are creating code (the active screen, by default).  The "Output" Dir and 
File fields take the directory and file for the code that is to be created, 
and the Routine field below them takes the name for the routine to be created.  
By default, the name of the Output file will be the same as that of the screen 
from which the table is created (with an added .c suffix and its name 
truncated to eight letters) and the table will have the same name as the screen.

The "Template" Dir and File fields take a directory and file name for a custom 
header.  By default, Look & Feel will only include cscape.h and stdio.h.  

"Yes" in the Generate Test Code field creates a main() to call your function.  
"Yes" in the Quote Non-Printables field uses C's octal quoting syntax.  
"Yes" in the Generate Ansi Code field creates source with Ansi prototyping.


          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.7
Generate Symbol Table box
If you wish to load screens from .lnf files (@65[sfiles]) for use in your
application, you must create an accompanying symbol table.  Look & Feel will
automatically do this from the Generate Symbol Table box.

The uppermost Dir and File fields take the name of the sfile for which you 
wish to create code.  The "Output" Dir and File fields take the directory and 
file for the table that is to be created, and the Table field below them takes 
the name for the symbol table to be created.  By default, the name of the 
Output file will be the same as that of the sfile from which the table is 
created (with its suffix changed to .c from .lnf) and the table will have the 
same name as the sfile, with _syms added to its end.

The "Template" Dir and File fields (on the right) take a directory and file 
name for a custom header.  Look & Feel will only include cscape.h and stdio.h 
in your code unless you give it a custom template file.

When you have selected a file, a screen, and an output file name, press Enter to
generate the symbol table.  Look & Feel will scan your .lnf file and create a
symbol table with entries for each @82[field function], @98[border], @72[mouse handler], or
other function it encounters.

          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.8
Disk Import box
To import ASCII files, slides from Dan Bricklin's Demo Program, or screens from
the old Look & Feel, use the Disk-Import command, which places the Disk Import
box on the display.

The first field in the Disk Import box is the Directory field, which displays
the path of Look & Feel's present working directory.  If you want to load a
screen from a different directory, type that directory's path in the Directory
field.  Press Enter to enter the new path in the Directory field.

In the Source field, enter the name of the file from which you want to load a
screen.  Press Enter to select the file.

The last field in this box is the Import From field.  In this field, space bar
toggles between "ASCII", "@51[DBD]" (for "Dan Bricklin's Demo"), and "OLDLNF" 
(for files from versions of Look & Feel prior to 3.1).  Files from versions
3.1 and 3.2 of Look & Feel are compatible and can be loaded with the @4[Disk-Load]
command.

Once you have set values for all these fields, press Enter to import the screen.


          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.9
Screen Menu
The Screen submenu of the @103[Main Menu] allows you to manipulate screens.


                     ┌─────Create a new screen with the Screen Open box.
                     │
  Screen Commands    │┌────Edit a screen with the Screen Edit box.
╔═════════════════╗  ││
║ @11[Open   (Ctrl-O)] ║ ─┘│┌───Close a screen (remove it from the display).
║ @10[Edit       (F2)] ║ ──┘│
║ @12[Close  (Ctrl-Y)] ║ ───┘┌──Move to the next screen.
║ @13[Next   (Ctrl-N)] ║ ────┘
║ @14[List       (F3)] ║ ───────List all screens on the display.
║ @15[Go         (F9)] ║ ───────Enter GO mode.
║ @16[Move   (Ctrl-M)] ║ ─────┐
║ @17[Resize (Ctrl-R)] ║ ───┐ └──Enter MOVE mode.
║ @18[Wipe           ] ║ ──┐│
╚═════════════════╝   │└───Enter RESIZE mode.
                      │
                      └────Remove all fields and text from the current screen.
                      
                      

          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.10
Screen Editing
A @9[screen] contains text and fields, and manages the flow of control and
movement between fields.  To edit a screen's parameters, use the Screen-Edit
command or F2 to call the Screen Edit box.

The Screen Edit box displays the @70[screen's name] and the file from which it
is loaded.  If you specified a path when you loaded the screen, the path will 
appear in the File field; if you loaded the screen from your current working
directory, only the screen's @65[sfile] will appear there.

It has fields to set the parameters to control size, position, @66[explode function], 
@98[border], border title, @101[border features], @67[special function], @72[mouse handling], 
help @71[labeling], color @74[attributes], @73[shadow], and an @68[auxiliary function].

In the Screen Edit box, you can also set @58[ted] parameters:  @61[maximum length],
@60[insert mode], @59[wrap width], and @62[movement mode].






          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.11
Opening a Screen
To open a new screen, use the Screen-Open command, or Ctrl-O, which puts the
Screen Open box on the display.

The Type field allows you to select the @64[screen type] which you will open.
You can open a menu (a horizontal or vertical @53[slug] or a @55[framer]), a scrolling 
list editor (@113[sled]), a text editor (@58[ted]), or a screen editor (@57[sed]).  
The sed is the most simple screen, and can serve most purposes.  You can open 
either a small sed (called "sed") or a sed as large as the editing area 
(called "bigsed"). 

When you open a screen, you must both give it a name and place it in an sfile
(use the Screen, File, and Directory fields to set these values).  You cannot 
include the "." (period) character in screen names.  If you do this, Look & Feel 
will truncate the name; for instance, it will change the name "input.screen" to 
"input".  This is because it uses the period to indicate that a screen is 
@49[nested].

Once on the display, you can manipulate a screen with the @10[Screen Edit box].  To
load an already existing screen from an @65[sfile], call the @4[Screen-Load] command.


          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.12
Closing a Screen
To remove a screen from the display, use the Screen-Close command or press
Ctrl-Y.  If the screen has never been saved, or you changed it since it was last
saved, Look & Feel will ask you if you want to save the newest version before
closing it.

A closed screen leaves the @14[Screen List] and is no longer be available for
@10[editing].














          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.13
Moving Between Screens and Fields
If you have several screens on the display, you can move among them with the
Screen-Next command, Ctrl-N.  This command both passes control to the next
screen and brings it to the foreground.

Control passes among screens in their order in the @14[Screen List].

If you are in the Field Edit box for one of several fields in a screen, you
can move among them by pressing Ctrl-N.  This command passes control to the
the next field and keeps the @20[Field Edit box] on the display, keeping the 
cursor in the same position	in the box.

Control passes among fields in their order in the @22[Field List].









          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.14
Listing Screens
To see which screens are on the display, use the Screen-List command, or press
F3.  This displays a lists of screens by name.  The topmost screen in the table
is the active screen.  The @13[Screen-Next] command will pass control among the
screens in the order listed in the table.

You can use this list to close a screen, or make a screen active.

To remove a screen from the display, press the Delete key.  If you have made
changes to a screen since you last saved it, Look & Feel will ask you if you
want to save your changes before it removes your screen from the display.  This
process is identical to calling @12[Screen-Close].

To make a screen active, move to it in the list and press Enter.  This will
remove the list and place control in the screen you selected.
A @49[nested screen] will not appear in the screen list.  Only its parent
screen will appear.





          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.15
GO mode
To see how a screen will function as part of a running program, you can
simulate its operation with Look & Feel's GO mode.  Enter this mode by calling
Screen-Go, or by pressing F9.  In GO mode, the "#"s in each field become
writeable positions and the keyboard behaves as it would in @6[generated code]
or if the screen were called as an @65[sfile], so that you can enter data in
fields.  You can return to EDIT mode by calling Screen-Go (or F9) again or by
exiting the screen with the Escape or Enter keys.

In GO mode, only borders with enabled @101[border features] do not support the
mouse.

GO mode will only be able to simulate the behavior of functions that are linked
into Look & Feel (such as the @83[standard field functions]).  If Look & Feel
encounters an unlinked field function, it will treat it as string_funcs.  For
@98[borders], @72[mouse handlers], @35[user functions] and other functions, Look & Feel
will treat the unlinked function as if it has a NULL value.





          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.16
MOVE Mode
To move the active screen to a new position on the display, enter MOVE mode
with the Screen-Move command, or by pressing Ctrl-M.  You can return to EDIT by
pressing Enter or repeating the command sequence that entered it.

In MOVE mode, each arrow key moves the screen one row or column in its
direction.  The Home key moves the screen to the left edge of the display.  The
End key moves the screen to the right edge of the display.  PgUp and PgDn
move the screen to the top and bottom of the display, respectively.

If you decide, while in MOVE mode, that you do not want to change your screen's
position, press Escape to return to EDIT mode without moving your screen.

To move a screen with the mouse, click the mouse on the edge of the border (but
not any of its corners) and hold it down while dragging the screen to its new
position.  When you release the mouse, the screen will have a new position.






          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.17
RESIZE Mode
To resize a screen, use the Screen-Resize command, Ctrl-R.  This command takes
Look & Feel from EDIT mode and puts it in RESIZE mode.  In this mode, the Right
and Down arrow keys enlarge the screen's border horizontally and vertically,
respectively.  Left and Up shrink the border horizontally and vertically,
respectively.  When you like the new size, press Enter to set it and return you
to EDIT mode.  To resize a screen with the mouse, click on one of its corners
and drag it to a new position.  Release the mouse to set the screen's new size.

To make a screen one character wide, press the Home key.  To expand it to the
right edge of the display, press End.  To make it one character tall, press
PgUp.  For it to reach the bottom of the display, press PgDn.  To make a
screen the size of the display (or larger), simply enlarge it to whatever size
you want for it.  As it becomes taller, it will obscure the main menu and the
status bar, but you can still call the main menu by pressing F10.

To leave RESIZE mode without changing your screen's size, press Escape.  This
will return Look & Feel to EDIT mode and the screen to its original size.




          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.18
Wiping a Screen
To clear or wipe the contents of a screen, use the Screen-Wipe command.  This
includes all fields and text.  This command does not remove the title string or
reset the @98[border] or any @74[attributes].


















          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.19
Field Menu
The Field submenu of the @103[Main Menu] contains commands for creating,
manipulating, listing, and sorting fields.




  Field Commands       ┌───Edit a field with the Field Edit box.
╔═════════════════╗    │
║ @20[Edit   (Ctrl-E)] ║ ───┘ ┌─Mark a field.
║ @21[Mark   (Ctrl-F)] ║ ─────┘
║ @22[List       (F4)] ║ ───────List all fields in the active screen.
║ @23[Global Edit    ] ║ ─────┐
║ @24[Row Sort       ] ║ ───┐ └─Set parameters for all fields in the active screen.
║ @24[Column Sort    ] ║ ─┐ │
╚═════════════════╝  │ └───Sort fields in the current screen by row.
                     │
                     └─────Sort fields in the current screen by column.




          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.20
Field Edit box
To edit a field, use the Field-Edit command (or Ctrl-E), which calls the Field
Edit box.  The Field Edit box also appears when you finish @21[marking] a field.

Within the Field Edit box, you can set and change a field's parameters:
@80[spec], @82[field function], @92[variable type], @93[variable], @94[name], @79[regular and selected]
@74[attributes], @114[highlighted character], @96[protection], @81[width], @95[number], and 
@97[data pointers].  In it, you can also see if a field has a @77[bob] attached to it.

You can use the Field Edit box to move to @104[editing the next field].












          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.21
Field Marking
When creating a field, you can either write its spec to the screen from within
FIELD mode or write its spec to the screen and then mark it.

To mark a spec that is already on the screen, select the Field-Mark command, or
press Ctrl-F, which will highlight the cursor.  As you move the cursor away from
its original position, the highlighted area will expand and contract.  When you
begin marking, make sure the cursor is at the extreme left or right end of the
field.  Otherwise, you will not be able to mark the entire area, since you can
only move the cursor in one direction for marking.

When the entire field is marked, press Enter to set the field and pass control
to the @20[Field Edit box].

You can also @116[mark a field with the mouse].







          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.22
The Field List (and Changing It)
To see a list of the fields in the active screen, use the Field-List command,
F4.  This command displays a table with all the fields in it, and shows their
names, numbers, field functions, variable types, variables, and protection 
states (in that order).  In it, you can also see a field's idata (the value it
returns as a menu choice) and @35[user function] by pressing the Left arrow key.  
You can use this list to change the order of the fields, delete a field, or edit 
a field.

To edit a field, select Ctrl-E while control is in it or click the mouse on it.  
This will call the @20[Field Edit box].

If you want to move a field to a new position in the field list, move to it
with the arrow keys and press F5, which selects it for movement.  You can now
use the arrow keys to move the field to a new position in the list.  Press
Enter when the field has the position you want.  You can change the order of
the fields this way or by @24[sorting] them.





          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.23
Global Field Edit
If you wish to set parameters for all the fields in a screen, you can use the
Global Field Edit box.  You can declare a global @82[field function],
@92[variable type], @81[field width], @96[protection setting], or common @79[field attributes]
for all a screen's fields.  If you like, these settings can include the
screen's @77[bobs].

For field function, variable type, width, and protection, you can select a
value or setting as in the @20[Field Edit box].  To enable a global change,
select a value for the parameter in question and mark the field to the left of
the field label by pressing the space bar.  This will cause a check to appear.

To set global field attributes to the screen's defaults, check the field next
to "Unmark".  To include the fields in a screen's bobs, check the field next
to "Include Bobs".







          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.24
Sorting Fields
Look & Feel can automatically sort your fields for you.

To perform a sort based on the vertical alignment of fields, select
Fields-Column Sort.  To perform a sort based on the horizontal alignment of
fields, select Fields-Row Sort.

You can also manually change the order of your screen's fields by manipulating
the @22[field list].













          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.25
Block Menu
This is the Block submenu of the @103[Main Menu].  Block commands allow you to
manipulate regions of screens containing fields and/or text.


                     ┌─────Cut a block from a screen.
   Block Commands    │
╔═════════════════╗  │ ┌───Copy a block in to the cut buffer.
║ @27[Cut    (Ctrl-X)] ║ ─┘ │
║ @26[Kopy   (Ctrl-K)] ║ ───┘ ┌─Move a block within a screen.
║ @30[Move   (Ctrl-T)] ║ ─────┘
║ @29[Delete         ] ║ ───────Permanently delete a block.
║ @31[Attr   (Ctrl-A)] ║ ─────┐
║ @28[Paste  (Ctrl-P)] ║ ───┐ └─Change the attributes of a block.
╚═════════════════╝    │
                       └───Paste the contents of the cut buffer back to
                           a screen.

You can also use @116[block commands with the mouse].


             @48[About block commands]                         @111[Index]
               @-1[Previous Screen]                            @0[Exit Help]
.26
Copying a Block
To copy a @48[block] into the cut buffer, select the Block-Copy command, or
Ctrl-K.  Mark the block and press Enter.

This will copy the marked block to the cut buffer, but leave the original block
intact.  Block-Copy is useful if you need several copies of an area, but you do
not want to draw it repeatedly.  It can also be more convenient to copy an area
and modify it than to start from scratch each time.

To paste the block back to a screen, use the @28[Block-Paste] command.

If you copy the block, copies of it will have fields with the same parameters
as the original.  Give each set of fields unique variable names before
converting the screen to code, or you will have do so manually after the
conversion.







          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.27
Cutting a Block
To remove a @48[block] from its screen and save it into the cut buffer, use the
Block-Cut command or press Ctrl-X.  Mark the block and press Enter.

This will remove the marked block from its screen and place a copy of it in the
cut buffer.

You can later paste the block back on the screen with the @28[Block-Paste]
command.

If you cut a block and do not paste it back to a screen, any fields in it will
be @102[deleted].










          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.28
Pasting a Block
To paste a @27[cut] or @26[copied] @48[block] to the screen from the cut buffer, place the
cursor at the upper-left corner of its new location and select Block-Paste or
Ctrl-P.  This command will place the block back on the display.

If you paste a block on top of an area with text, any text the pasted block has
covered will be overwritten and cannot be retrieved.  Fields will not disappear
and can be manipulated from the @22[Field List].














          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.29
Deleting a Block
To permanently remove a @48[block] from the screen, use the Block-Delete
command.  This command allows you to eliminate a marked block from the screen
without losing the contents of the cut buffer.  It also @102[deletes] all fields
within the block.

Begin by calling Block-Delete.  Mark the block and press Enter.  This will
permanently destroy the marked block and remove it from its screen.

A deleted block cannot be retrieved; Look & Feel does not copy it to the cut
buffer.











          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.30
Moving a Block
To move a @48[block], select the Block-Move command or press Ctrl-T.  Mark the
block and press Enter.

With the arrow keys, move the cursor to the upper-left corner of its new
position.  Press Enter to paste it back to the screen.  The block will then
have the position you have selected.

With the Block-Move command, you cannot move a region from one screen to
another.  This is only possible by @27[cutting] a block and then @28[pasting]
it back to a new screen.

If you are moving a block on top of text and fields and are editing in
@60[OVERWRITE mode], you will destroy the text which originally occupied the
region.  In @60[INSERT] mode, the text will be pushed to the right.







          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.31
Coloring a Block
To change the background @74[attribute] for a @25[block], use the Block-Attr
command or press Ctrl-A.  Mark the block and press Enter.

When you press Enter, Look & Feel will pop up its dialogue box in which you can
@76[change color attributes].  When you select the color you want, the box will
leave the screen and the block will have a new attribute.

This command does not affect the @19[fields] within the block.  You can set
their colors in the @20[Field Edit box] or with the @23[Global Field Edit]
command.











          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.32
Nesting Menu
This is the Nesting submenu of the @103[Main Menu].  With its commands, you can
attach or embed one screen to or in another, link a user function to a field, or
detach an attached or embedded screen.




  Nesting Commands       ┌───Attach a screen to another screen.
╔═══════════════════╗    │
║ @34[Attach   (Ctrl-W)] ║ ───┘ ┌─Detach a @77[bob] from its parent screen.
║ @36[Detach           ] ║ ─────┘
║ @33[Embed    (Ctrl-B)] ║ ───────Embed a screen in another screen.
║ @35[UserFunc (Ctrl-U)] ║ ─────┐
╚═══════════════════╝      └─Link a user function to a field.






       @49[More information on nesting]                     @111[Index]
            @-1[Previous Screen]                         @0[Exit Help]
.33
Embedding a Screen
To embed one screen in another, use the Nesting-Embed command, or Ctrl-B.

First, ensure that both the parent and child screens are both on the display.
Next, put control into the screen that will be the child screen.  Then move it
directly over the position you want it to have in the parent screen.

Selecting Nesting-Embed anchors the child screen on a virtual field in the
parent screen.  (A virtual field is a field without any writeables or
non-writeables.)  It also pops up the @20[Field Edit box] so you can set the
parameters of the virtual field.  Because this is an embedded sed, you must set
the field function to bob_funcs and the field's variable to NULL.  Finally, set
the @67[special function] for the bob to spc_Embed.









          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.34
Attaching a Screen
To attach one screen to another, move to the field in the parent screen where
you wish to attach the child and call the Nesting-Attach command, Ctrl-W.

This command pops up a list of all the screens presently on the display.  Move
to the screen you want to attach and press Enter.

The @20[Field Edit box] will then appear and you can select a @82[field function]
for the field to which the child is attached.  You must either use
@55[framer_funcs] or @53[slug_funcs].  Otherwise, the attached screen will be unusable
unless you link in your own custom field function.

When you exit the Field Edit box, the process is finished.

You can @36[detach] a child from its parent with the Nesting-Detach command.







          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.35
Attaching User Functions
If you wish to attach user functions to your @53[slug] and @55[framer] menus,
use the Nesting-UserFunc command, or Ctrl-U.

Move to the field which will hold the function and press Nesting-UserFunc.  If
there is a bob already attached to the field, Look & Feel will first ask you if
you wish to delete the bob (or not attach the function).  Press Y to attach the
user function and pop up the User Function box.

This dialogue box takes the name of the function to be attached and an idata 
value, which is an integer.  The menuing system (@55[framer] or @53[slug]) pass 
the idata to the field's user function or (if the user function is NULL) to 
whatever called the menuing system.  Once you enter these values and press Enter 
again, they are set as the user function's name and return value.  Both appear 
in fields to the left of the field number in the @22[field list]

Until you link in your user function, @15[GO mode] treats the field as if its 
@82[field function] is string_funcs.  Look & Feel comes with the sample user 
function lnf_Beep.  lnf_Beep beeps at a frequency determined by its idata.



          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.36
Detaching a Screen
To remove a @77[bob] from its parent and make it autonomous, you can use the
Nesting-Detach command to extract a nested screen from its parent screen.

First, pass control into the screen you want to detach.  To do this, press F9
to enter @15[GO mode] and move through the fields into the bob.  Once control is
in the bob, return to EDIT mode by pressing F9 again.  Now, select
Nesting-Detach.

Before Look & Feel extracts the child screen from the parent, it asks you to
supply a name for the screen that will be extracted.  If you do not enter a
name, you cannot detach the screen.  After you enter the new screen's name,
press Enter.

This sets the screen's new name, removes the popup box, and detaches the screen.







          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.37
Editor Menu
This is the Editor submenu of Look & Feel's @103[Main Menu].  It contains
commands for opening an editor window, searching for a string, and performing a
search and replace.



  Editor Commands        
╔═════════════════╗      ┌─Open a file for text editing. 
║ @38[Open       (F6)] ║ ─────┘
║ @39[Search     (F7)] ║ ───────Search for a string.
║ @40[Replace    (F8)] ║ ─────┐
╚═════════════════╝      └─Search for a string and replace it.








          @50[More information on the editor]                    @111[Index]
                  @-1[Previous Screen]                         @0[Exit Help]
.38
Editor Open box
To open a window and load a file for text editing, use the Editor-Open File
command, F6.  This will pop up its Editor Load box.

The Editor Load box takes the name of a file (in the File field) and the
directory in which the file is located (in the Directory field).

If you leave the Directory field empty, you will be working in the directory
where you have installed Look & Feel.

You can press the Plus key in the File field to pop up a list of the files
available for editing in your working directory.  The list will include any
@65[.lnf files] in the directory.  Do not edit these, as you may corrupt them
and destroy the screens in them.








          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.39
Search
You can perform a case-sensitive search with the Editor-Search command, or by
pressing F7.  A "Search:" prompt will appear at the bottom of the screen.
Enter the word or string you want and press Enter.  The editor will then move
the cursor to the first character after its first instance.

You can perform searches in @58[teds], @50[Look & Feel's editor], and other screens.
For @57[seds], @53[slugs], and @55[framers], Look & Feel will only search for the pattern
in the text buffer.

Look & Feel will only perform a forward search.  To ensure finding all cases of
a string, start at the beginning of a file.










          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.40
Search and Replace
You can search for a string and replace it with another by pressing F8 or
calling Editor-Replace.  A "Search:" prompt will appear at the bottom of the
screen.  Enter the word you want to replace and press Enter.  A "Replace:"
prompt will replace the search prompt.  Enter the new text and press Enter.
The editor will then move the cursor to the first instance of the search string
and request an action.  Press Y to replace it and move to its next instance; N
to move to its next instance without replacement; or G to replace the rest of
its instances.  Pressing Escape ends the process.

You can perform searches in @58[teds], @50[Look & Feel's editor], and other screens.
For @57[seds], @53[slugs], and @55[framers], Look & Feel will only search for the pattern
in the text buffer.

This function is case sensitive.  It also will only search forward in a file.







          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.41
Tools Menu
This is the Tools submenu of the @103[Main Menu].  It gives you access to
special utilities for manipulating your screens.


         Tools               ┌───Enter Line Drawing mode.
╔═══════════════════════╗    │
║ @42[Line Drawing (Ctrl-L)] ║ ───┘ ┌─Use an ASCII special character.
║ @43[Special Char (Ctrl-C)] ║ ─────┘
║ @44[Global Settings      ] ║ ───────Change Look & Feel's global settings.
║ @45[Top       (Ctrl-Home)] ║ ─────┐
║ @45[Bottom     (Ctrl-End)] ║ ───┐ └─Place control at the top of the active screen.
╚═══════════════════════╝    │
							 └───Place control at the end of the active screen.








          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.42
Drawing Lines
Look & Feel provides an easy way to draw single, double, or character lines.
They are a supplement to (and not a replacement for) Oakland border functions.

The Tools-Lines command, Ctrl-L, places Look & Feel in LINE mode.  Moving the
cursor with the arrow keys draws a line that automatically connects with lines
it crosses.  You can change the type of line by pressing 0, 1, 2, or 3.

If you wish to draw a single line, press 1.  To draw a double line, press 2.
To move within LINE mode without changing the screen, 0.  If you press 0 and
move on top of a character and press 3, Look & Feel will then draw a line 
consisting of the character that you were over.

Enter and Escape return Look & Feel to EDIT mode.  Backspace removes lines and 
restores the previous contents of the screen.







          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.43
Using Special Characters
Certain ASCII characters cannot be typed from the keyboard.  You can include
these in a screen with the Tools-Characters command, or Ctrl-C.  This command
will pop up the Special Character box.

This box has all special characters in it.  You can move around in this screen
with the arrow keys and select the character you want by pressing Enter.  The
character will then appear at the current cursor position.  You can exit this
screen without selecting a character by pressing the Escape key.













          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.44
Global Settings
The Tools-Settings command calls the Global Settings box, in which you can
modify or set values for Look & Feel's global variables.  Unless otherwise 
specified, the fields use the space bar to toggle between their two positions.

The Cfg File field displays the file from which Look & Feel is getting its 
dialogue boxes.  If Look & Feel finds lnf.oak in your path, it lists the path 
here; if lnf.oak is in your current working directory, no path is listed.

In the @60[Input Mode] field, you can toggle between the modes for text input.
(You can also use the Ctrl-I quick key to perform this action.)  In the Tab Size 
field, you can set the size of tabs.  In the Show Tabs and Show Newlines fields, 
you can display or hide the tab and newline markers.  

In the Sound field, you can turn on or off sound.  The Overwrite Prompt field 
lets you choose whether or not Look & Feel will ask you if you want to overwrite 
screens and files when you save them.  In the Monochrome field, you can toggle 
between color and monochrome modes.  (Monochrome mode allows you to see how your 
color screens will appear on a monochrome monitor.)  The 43 Line Mode field lets 
you choose to have Look & Feel use 43 line mode on your VGA monitor.


          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.45
Moving the Cursor within a Screen
You can move the cursor within a screen by using the mouse or arrow keys.
Either move the cursor to a new position with the arrow keys, or click the mouse
on whatever new position you want it to have.

You can move the cursor to the beginning of a screen by selecting the Tools-Top
command or pressing Ctrl-Home.  You can move the cursor to the end of a screen
by selecting the Tools-Bottom command or pressing Ctrl-End.

You can also put the cursor on a particular line with the Ctrl-G command.  This
command prompts you a line number.  After receiving it, the cursor will move to
the specified line.  When using this command, remember that the topmost line in
a screen is line 0 (zero).









          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.46
Help Menu
This is the Help submenu of the @103[Main Menu].



         Help
╔═════════════════════╗    ┌─Provides an entry point to Look & Feel's help
║ @1[Help           (F1)] ║ ───┘ system through the menu.
║ @2[Quick Keys (Ctrl-H)] ║ ───┐
╚═════════════════════╝    └─Displays a list of Look & Feel's Quick Keys.












          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.47
Quitting Look & Feel
This is the Quit submenu of the @103[Main Menu].  Move into it and press Enter
to leave Look & Feel.



         Quit             ┌─Leave Look & Feel and return to your operating
╔════════════════════╗    │ system.  If you have edited any screens since
║ Quit      (Ctrl-Q) ║ ───┘ last saving them, Look & Feel will prompt you
╚════════════════════╝      with the @5[Screen Save box].












          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.48
Block Commands
Block commands allow you to manipulate, duplicate, @30[move], and @29[delete]
sections of text.  You can use them on any region within a screen.

Some block commands use the cut buffer.  Whenever you @27[cut] or @26[copy] a block,
a replica of it goes into the cut buffer.  The @28[paste] command copies the
contents of the cut buffer back to the screen.  The cut buffer can only hold
one block at a time, so when you cut or copy a new block, the new block
replaces whatever was there.  Pasting does not affect the cut buffer.

To cut, copy, delete, or @31[color a block], begin by marking it.  The current
cursor position should be at one end of the marked region.  (Marked areas
appear on the display in reverse video.)  Move the cursor to the other end of
the region you wish to mark and press Enter to finish marking the block.  Look
& Feel will then perform whatever action on the block you have requested.

If you mark a block with fields, the block commands will affect those fields.
For instance, if you move a block that contains fields, they will move with the
block.  Also, marking one character of a field marks the entire field.

You can also use @116[block commands with the mouse].

          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.49
About Nesting
The Nesting commands allow you to link screens.  If you want two screens always
to appear and disappear together, you can @33[embed] one within the other.  If
you @34[attach] one screen to another, the attached screen can appear when the
screen to which it is attached is visible (but will not appear automatically).

In both cases, the relationship is parent-child and you cannot call the child
directly.  The relationship is also parent-child insofar as the parent can have
more than one child, while a child can have only one parent.  For instance, a
menu has several submenus, but each submenu is attached to the same menu.  Each
child's name appears after the parent's name and a dot, such as "parent.child".

A nested screen has a shell around it, which makes the child a "basic object,"
or @77[BOB].  Because an embedded screen appears and disappears with its parent,
it is a DEPENDENT bob.  An attached screen may behave differently from its
parent and is therefore an INDEPENDENT bob.

You can also link a function from outside of Look & Feel to a field with the
Nesting-UserFunc command.  This command is useful for attaching
@35[user functions] to @55[framer] or @53[slug] menus.


          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.50
Look & Feel's Editor
The text editor in Look & Feel has functions for @39[searching],
@40[searching and replacing], @59[word wrap], and @48[block commands].  You can use it to
edit @6[generated source code] or other files.

In the editor, you can view tab and newline markers by making the appropriate
selections from the @44[Global Settings box].  The editor operates in the
ted_Past @62[movement mode], in @60[insert mode] for input, and has no @61[maximum length].

You can open an editing window with the Editor-Open command

To move from an editing window to another window, use the @13[Screen-Next] command.

To remove an editing window from the display, use the @12[Screen-Close] command,
which will ask you if you want to save the contents of the window.







          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.51
Importing Files from Dan Bricklin's Demo Program
To @8[import] a screen designed with Dan Bricklin's Demo Program (DEMO), you
must use Demo's Print command to save the screen in a special format.

Enter DEMO, and select the screen that you wish to convert to C code.  Look &
Feel will only be able to load the screen

    (1) as text with CR/LF interspersed,

    (2) has its attributes set as separate, and

    (3) is printed to a file.

If the file you are printing already exists, do not append the new file to the
old one.  Either replace the old file or give the new file a different name.

Look & Feel can now load the resulting .TXT file.

Consult the Look & Feel manual for a detailed discussion of this process.



          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.52
GO mode
You are now in Look & Feel's @15[GO mode], which simulates the behavior of a
screen when it is operational.

You can leave GO mode by either calling Screen-Go, pressing F9, or by pressing
Escape.
















          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.53
Slugs
The slug menu system can create nested menuing systems.  These can be either
horizontal or vertical.  When activated, a slug menu lets the user move through
menu choices.  Descriptive prompt messages appear for each menu choice.  When
the user presses Enter, a value is returned to the program or control passes
into either another menu or a user-supplied function.  Pressing Escape returns
the user to the previous menu level.

You can manipulate a slug menu with the @10[Screen Edit box].

If you wish to use a slug, you can either load a simple slug with the
@11[Screen-Open] command and modify it or @54[build one].










          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.54
Building a Slug
Building a slug takes several steps:

(1)  Create the main menu from a sed where every field has slug_funcs for its
@82[field function].  Mark fields across or down the main menu with the
@21[Field Mark] command.

(2) Using other seds, create submenus with choices in them.  The fields in the
submenus should also have slug_funcs as their field functions.  You can also
give your choices @35[user functions].

(3) Link each submenu to the main menu with the @34[Nesting-Attach] command.

You will now have a functioning slug menu.








          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.55
Framers
With the framer menuing system, you can create submenus that drop down from a
menu bar at the top of the display.  The user can move horizontally through the
menu bar and then vertically through the submenus.  A menu choice can either
return a value to the program or call a user-supplied function.

To create a framer menuing system, you can either @56[build] it from a sed or load
a simple framer with the @11[Screen-Open] command and modify it.

You can manipulate a framer menu with the @10[Screen Edit box].












          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.56
Building a Framer
Building a framer takes several steps:

(1)  Create the main menu from a sed where every field has framer_funcs for its
@82[field function].  Mark fields across the main menu with the @21[Field Mark]
command.

(2) Using other seds, create submenus with choices in them.  The fields in the
submenus should also have framer_funcs as their field functions.  You can also
give your choices @35[user functions].

(3) Link each submenu to the main menu with the @34[Nesting-Attach] command.

You will now have a functioning framer menu.








          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.57
Seds (Screens)
A sed (Screen EDitor) is a screen with text and/or fields.  A sed manages its
own flow of control.  It processes keystrokes and controls data entry within
fields and movement between fields.

Since seds are Look & Feel's most fundamental @64[screen type], you can use one
to create a text editor (@58[ted]), a @55[framer] menu, or a @53[slug] menu.

The main editing area (where control first resides when you enter Look & Feel)
is a sed.  You can modify this and all seds with the @10[Screen Edit box] or in
various other ways (such as resizing or moving the screen).











          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.58
Teds (Text Editors)
A ted is a text editing screen that can automatically word-wrap text.  In a
ted, you can set and display tabs; mark, cut, delete, and paste blocks of text;
perform @39[search] or @40[search and replace] operations; and save and read
files.

You can set values for a ted's parameters in the @10[Screen Edit box].  Teds
have four additional parameters that govern their behavior: a @61[maximum length],
an @60[insert mode], a @59[wrap width], and a @62[movement mode]. You can also set
these in the Screen Edit box.

@50[Look & Feel's editor] is a ted with additional file storage ability.

To create a ted, create a sed with a virtual field with ted_funcs as its
@82[field function] and spc_EmbedTed as its @67[special function].







          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.59
Wrap Width
The wrap width of a @58[ted] is the maximum length of its line.  You can observe
and set its value in the Wrap Width field of the @10[Screen Edit box].  As you
type words past this length, the ted automatically places them on the next
line.  By default, a ted does not wrap.  If a ted already has a wrap width and
you do not want its lines to wrap, press "*" in this field.

For best results, make the wrap width three characters less than screen width.
Otherwise, when you type a word that runs past the end of a line, the contents
of the screen may scroll horizontally until the words wrap.

By default, @50[Look & Feel's editing windows] do not have a wrap width, but you can
set one for each of them by calling the @10[Screen Edit box].









          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.60
Insert and Overwrite Modes
When using a @58[ted], you can select between two input modes: INSERT and
OVERWRITE.  In INSERT mode, old characters slide to the right when you type new
characters.  In OVERWRITE mode, new characters appear on top of (and delete) the
old characters.  Pressing the space bar toggles between the two modes, where
"Yes" means that the ted is in INSERT mode and "No" means that it is in
OVERWRITE mode.

In the Insert mode field of the @10[Screen Edit box], you can observe and set a
ted's Input mode.

@50[Look & Feel's editor] operates in INSERT mode.










          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.61
Maximum Length

You can set the maximum number of characters that a @58[ted] will hold in the
MaxLength field of the @10[Screen Edit box].  If you want a ted with unlimited
length, enter "*" in this field.  Otherwise, enter a new value and it will be
the ted's maximum length.

@50[Look & Feel's editor] does not have a maximum length.














          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.62
Move Methods
In the Movement field of the @10[Screen Edit box], you can select your ted's
movement method, which determines how the cursor moves in it.  You can either
set it to ted_Past or ted_Follow.  ted_Past allows the cursor to move past the
end of text on any line.  Vertical motion is straight up and down.  ted_Follow
does not allow the cursor to move past the end of text on any line--the cursor
moves from the end of a line to the beginning of the next line.  Vertical motion
follows the ends of lines.

To set your ted's movement method, either type the name of the movement method
you wish to use or press Plus to pop up the two methods and select one.
@50[Look & Feel's editor] use the ted_Past method.










          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.63
Screen Deletion
To delete a screen, enter either the @4[Screen Load box] or the @5[Screen Save box].

Enter a file name in the File field and press Enter.  In the Screen field, press
Plus to pop up the list of screens that are in whatever .lnf file you have
selected.  Move to the screen you want to delete with the arrow keys and press
Delete.  Look & Feel asks you to confirm the deletion.

When you delete a screen you have permanently removed it.  To merely remove a
screen from the display, use the @12[Screen-Close] command.












          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.64
Screen Types
Look & Feel allows you to create screen editors (@57[seds]), text editors (@58[teds]),
@113[sleds], and two types of menuing systems (@55[framers] and @53[slugs]).

When you create a new screen in the @11[Screen Open box], you must specify what
type of screen you want it to be.
















          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.65
Sfiles
Look & Feel saves its screens into .lnf files, which are also called sfiles or
screen files.

You can call an sfile from a C-scape executable and manipulate it with the
sfile_ library commands.  If you wish to do this, you must generate a
@7[Symbol Table] and include it in your code.















          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.66
Explode Functions
In the Explode field of the @10[Screen Edit box], you can give your screen an
"explode" function, which adds special effects when it first appears on the
display.

Look & Feel provides the following explode functions:

exp_std       the Oakland standard explode function, which draws a series of
              expanding boxes within a screen.

exp_BeamMeUp  the Star Trek explode function, which before the screen appears,
              boldly draws a sequence of characters where no characters have
              gone before.









          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.67
Special Functions
In the Special field of the @10[Screen Edit box], you can attach a special function 
to your sed.  A special function customizes the way a screen's fields process 
particular keystrokes by intercepting keystrokes before the standard 
@82[field functions] can read them.  In this field, the Plus key pops up a list 
of the available special functions, which are:

spc_Abort        Intercepts the Escape key causing control to leave the screen
                 without saving any of the new values that users may have
                 entered.
spc_Embed        Intercepts keystrokes so that they work properly for
                 @49[nested] seds.

spc_Sled         Intercepts keystrokes so that they work properly for @113[sleds].

spc_EmbedTed     Intercepts keystrokes so that they work properly for nested
                 @58[teds].


An @68[auxiliary] function can also customize a screen's behavior.


          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.68
Auxiliary Functions
In the Aux field of the @10[Screen Edit box], you can give your screen an
auxiliary function, which provides additional control over its operation without
having to modify @82[field functions].  You can use the auxiliary function
several times while processing a screen.  C-scape provides no standard auxiliary
functions, so each one you use must be your own.

To attach an auxiliary function to a screen, fill in its name in the appropriate
field in the Screen Edit box.

You can also customize a screen's behavior by giving it a @67[special function].











          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.69
Screen Attributes
Each screen has four @74[attributes]: regular, selected, background, and
shadow.  Each of these is listed in a field of the @10[Screen Edit] box and can
be @76[modified] there.  You can either type a new attribute number in the
field or press the Plus key to pop up a table with all the available attributes
in it.
















          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.70
Screen Name
Each screen has a name.  With a single sfile, each screen has a unique name.  A
screen's name appears in a protected field in the @10[Screen Edit box].  Screens are
also listed by name in the @14[screen list].

If you wish to save a screen under a new name, call the @5[Screen Save box] and
enter a new name in the "Screen" field.















          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.71
Screen Label
In the Label field of the @10[Screen Edit box], you can set the value for a
screen's label, which is an integer that gives a screen a unique identifier.
The label normally works in conjunction with the help system in order to bind
specific help screens to screens in applications.

















          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.72
Mouse Handler
In the @10[Screen Edit box]'s mouse handler field, you can give your screen a
mouse handler.  A screen with a mouse handler attached allows you to use the
mouse to move among the screen's fields.  These mouse handlers are available:

sedmou_Click        Passes control to a field when you click the mouse there.

sedmou_Framer       Handles the mouse properly for @55[Framer] menus.

sedmou_Track        Passes control to fields as the mouse moves among them.

sedmou_GreedyTrack  Allows mouse events to happen only in the active screen.
                    Handles mouse events as does sedmou_Track.  (This handler
                    should only be used in popup windows.)

sedmou_GreedyClick  Allows mouse events to happen only in the active screen.
                    Handles mouse events as does sedmou_Click.  (This handler
                    should only be used in popup windows.)

To move or resize a screen with the mouse, you must enable the @101[border features] 
of its border.  In Look & Feel, you can perform @116[block commands with the mouse].

          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.73
Shadow
In the Shadow field of the @10[Screen Edit box], you can give your screens the
ability to cast shadows.  A shadow is a one-character wide region to the right
and below a window.  You can toggle between enabling and disabling shadows by
pressing the space bar in this field.

Note that a screen's @74[shadow attribute] determines its color when it is in
another screen's shadow.  A screen with an enabled shadow will only cast a
shadow on screens with shadow attributes.













          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.74
Attributes (General Information)
For color attributes, Look & Feel treats every screen as four distinct regions:
background, regular, selected, and shadow.

background  Any area which is not a field.  This is usually the screen's text
            region.

regular     All fields except the one in which control presently resides.

selected    The active field.  The selected field changes as the cursor moves
            from field to field.

shadow      The portion of the screen lying in the @73[shadow] of another
            screen.

Each field can also have a @114[highlighted character], which has its own regular
and selected values.

Look & Feel uses hexadecimal @75[notation] for its attributes.

You can @76[change attributes] for @10[screens], @20[fields], @98[borders], and @31[blocks].

          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.75
Attribute Notation
For color monitors, a color attribute specifies the color of text and the color
of the background color.  Look & Feel has sixteen colors available for text and
backgrounds, making 256 combinations.  For monochrome monitors, attributes
specify normal, underlined, bold-faced, blinking, or reversed characters.

Look & Feel uses hexadecimal notation for color attributes.  For each of 256
attributes, the first digit indicates the background color while the second
indicates the foreground color.  In C's notation, the prefix "0x" (with the
numeral zero) denotes a hexadecimal number, so 0x00 to 0xff indicate the numbers
from 0 to 255.  Each attribute field has the attribute you have chosen and
displays the number of the attribute in hexadecimal.  For instance, if the
background color of a screen is 0x07, the Back field of the Screen Edit box will
hold the number "07" in white on black (which is color attribute 0x07).








          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.76
Changing Color Attributes
To change a color attribute, go to its field and type the number of the color
attribute you want.  To view all the available colors, press Plus.  This will
pop up a screen with all available colors in it.  Move around it with the arrow
keys and press Enter over the active field to select its attribute.  You can
perform this procedure for the attribute fields in the @10[Screen Edit box],
@20[Field Edit box], or when coloring a @31[block].















          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.77
Bobs
A bob is a screen which is @49[nested] within another screen.  It can either be
independent (when it has been attached to its parent screen) or dependent (when
it has been embedded in its parent screen).

Because bobs are part of their parent screens, @78[editing bobs] cannot happen
directly after embedding or attaching.  Only from within the bob can you set
its parameters with the @10[Screen Edit box].














          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.78
Editing Bobs
You cannot directly edit a screen once it is embedded or attached.  To edit a
nested screen, enter @15[GO mode] by pressing F9.  You can then move through the
fields and into the @77[bob].  If the bob is an attached screen, the screen will
then appear.  Once you are inside the bob, leave GO mode by pressing F9 again.
This leaves you inside the bob in EDIT mode, where you can edit as you like.
















          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.79
Regular and Selected Fields
A field has two color @79[attributes]: regular and selected.  Usually, the
field is colored by the regular attribute.  When you move into a field to edit
its data, it changes to its selected attribute.  The default values for these
attributes are the color attributes of the field's screen and are set in the
@10[Screen Edit box].  If you want a field to have unique attributes, you can
reset them in the @20[Field Edit box].















          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.80
Field Spec
The Spec field of the @20[Field Edit box] holds the field's specification--its
writeables and nonwriteables.  Writeables are the positions in a field where
you can write and nonwriteables are the positions in a field where you cannot.
For instance, in the field:

                       (___) ___-____

The parentheses, dash, and blank space are the nonwriteables since they do not
change during data entry.  The underscored areas are the writeables.

In the Spec field, use a "#" for each writeable and any other character for the
nonwriteable positions.  If you want a field's width to be different from the
number of characters in the spec, you can set it in the @81[Width] field.

To use a "#" as a nonwriteable character, place the "@@" character in front of
it.  For example, "@@##" will appear as "#_".

While in the spec field, you can also select a field's @114[highlighted character].



          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.81
Field Width
In the Width field of the @20[Field Edit box], you can set the displayed (as
opposed to actual) width of a field.  By default, this value is the number of
characters in the field's @80[spec] and appears as "*".  You can change the
display width by entering an explicit value in this field.  By setting it to a
smaller value than the field's actual width, you can make the field contents
scroll as the user enters information into it.















          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.82
Field Functions
In the Funcs field of the @20[Field Edit box], you can select the field
function for your field.  A field function is a structure of functions that
governs a field's behavior: the @92[data type] a field will accept, how it will
@109[format] the data, and how it will display this data on the screen.

When you create a field, you can use one of the @83[standard field functions],
or create one of your own.  You can either type in the name of the function in
this field, or use Plus to pop up a list of all the available functions and
select from the list with the Enter key.












          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.83
Standard Field Functions
Look & Feel comes with over thirty standard field functions.  They are listed
here in alphabetical order

Function         Data Type        Description

alpha_funcs      char *           Allows entry and editing of a character
                                  string.  Only accepts alphabetic characters.
                                  Enlarges the cursor when in INSERT mode.

bob_funcs        void             Passes control to a bob embedded in a field
                                  and governs movement through the field.

char_funcs       char *           Allows input of a single character.  The field
                                  should have only one writeable position.





     @84[More standard field functions]                     @-1[Previous Screen]

               @111[Index]                                      @0[Exit Help]
.84
Standard Field Functions, Continued
Function        Data Type   Description

check_funcs     boolean *   Allows the user to check off selections by
                            pressing the space bar.  Uses arrow keys to move
                            between choices.  If a choice has been selected, a
                            check mark is written to its record and its
                            variable is set to TRUE.  The field needs at least
                            one writeable position.

click_funcs     char *      Treats the field as a menu choice.  Supports grid 
                            movement among fields.  Pressing a field's first 
                            letter or Enter makes a selection and exits the sed.

clong_funcs     long *      Allows calculator style input of a long integer.
                            Inserts commas automatically.  Reserves the left
                            most record position for the minus sign.



     @85[More standard field functions]                     @-1[Previous Screen]

               @111[Index]                                      @0[Exit Help]
.85
Standard Field Functions, Still Continued
Function         Data Type        Description

cmoney_funcs     long *         Allows calculator style input of a long integer
                                representing a monetary value in cents.
                                Automatically inserts commas.  Automatically 
                                keeps the last two digits behind a fixed decimal 
                                point.  Reserves the left most record position 
                                for the minus sign.

date_funcs       struct tm *    Allows entry of a date.  Assumes that the
                                field has 6 writeable positions interpreted as
                                MM/DD/YY.  Look & Feel automatically places
                                the result in the date portion of a tm struct.

digit_funcs      char *         Allows entry and editing of a character
                                string.  Accepts only numeric characters.
                                Enlarges the cursor when in INSERT mode.


     @86[More standard field functions]                     @-1[Previous Screen]

               @111[Index]                                      @0[Exit Help]
.86
Standard Field Functions, Yet Still Continued
Function         Data Type    Description

double_funcs     double *     Allows scientific calculator style input of a
                              double value.

framer_funcs     void         Controls all behavior for fields in a framer
                              menu.

gmenu_funcs      void         Treats the field as a menu choice.  Supports grid
                              movement between the fields (with the arrow keys).
                              Pressing Enter exits the screen.

hex_funcs        int *        Allows entry of an integer in hexadecimal format.

int_funcs        int *        Allows calculator style input of an integer.  
                              Reserves the left most record position for the 
                              minus sign.


     @87[More standard field functions]                     @-1[Previous Screen]

               @111[Index]                                      @0[Exit Help]
.87
Return of the Standard Field Functions
Function       Data Type    Description

list_funcs     char *       Allows the user to select a choice from a list that
                            pops up when the space bar is pressed.  Copies the
                            choice into the field's variable.  The field's
                            second data pointer holds the list in a string, with
                            commas between choices.  The commas are not
                            displayed.  A choice list might be "NH,NJ,NM,NY".

long_funcs     long *       Allows calculator style input of a long integer.
                            Reserves the left most record position for the minus
                            sign.

mark_funcs     boolean *    Allows the user to mark selections in a list by
                            pressing the space bar.  Uses arrow keys to move
                            between choices.  If a choice has been selected, it
                            marks the choice's field and sets the field's
                            variable to TRUE.

     @88[More standard field functions]                     @-1[Previous Screen]

               @111[Index]                                      @0[Exit Help]
.88
Revenge of the Standard Field Functions
Function       Data Type   Description

menu_funcs     void        Treats the field as a menu choice.  Down and Up 
                           arrows move to next and previous field.  Pressing 
                           Enter exits the sed.

money_funcs    long *      Allows calculator style input of a long integer for
                           a monetary value in cents.  Automatically keeps the 
                           last two digits behind a fixed decimal point.  Holds 
                           the left most record position for the minus sign.

nowrite_funcs  char *      Treats the field as a menu choice with grid movement 
                           among fields.  Identical to menu_funcs except it uses 
                           string_senter.  Menu choice text is determined by the 
                           contents of the field's string variable.  Hence, it 
                           can be changed at run-time but the user may not edit 
                           the field.  Upon exit, the value of the field is not 
                           written back to the variable.
                                                   
     @89[More standard field functions]                     @-1[Previous Screen]

               @111[Index]                                      @0[Exit Help]
.89
Son of Standard Field Functions
Function         Data Type     Description

pint_funcs       int *         Positive integer function, identical to int_funcs
                               except that it allows only positive values.  
                               Needs no space for a minus sign.

plong_funcs      long *        Positive integer function, identical to
                               long_funcs except that it allows only positive
                               values.  Needs no space for a minus sign.

radio_funcs      boolean *     Allows for the exclusive selection of one field
                               from a group of fields, each of which has the 
                               same field name.  Requires at least one writeable 
                               position.

range_funcs      int *         Displays an integer value as a horizontal bar
                               chart.  Requires a field with at least 10
                               writeable positions.

     @90[More standard field functions]                     @-1[Previous Screen]

               @111[Index]                                      @0[Exit Help]
.90
Niece of Standard Field Functions
Function         Data Type        Description

sdouble_funcs    double *         Allows string-like entry of a double.

secure_funcs     char *           Allows entry of a character string.  Does not
                                  echo characters on the display; displays 
                                  instead a mask character.

sfloat_funcs     float *          Allows string-like entry of a float.

sint_funcs       int *            Allows string-like entry of an integer.

slong_funcs      long *           Allows string-like entry of a long.

slug_funcs       void             Controls all behavior for fields in a slug
                                  menu.



     @91[More standard field functions]                     @-1[Previous Screen]

               @111[Index]                                      @0[Exit Help]
.91
Standard Field Functions: The Next Generation
Function       Data Type    Description

string_funcs   char *       Allows entry and editing of a character string.
                            Enlarges the cursor in INSERT mode.

ted_funcs      char *       Allows full text editing on a string of text.

time_funcs     struct tm *  Allows entry of a time.  Assumes the field has 6
                            writeables for use as HH:MM:SS.  Look & Feel
                            automatically places the results in the time
                            portion of a tm struct.

toggle_funcs   char *       Allows the user to cycle through a list of choices 
                            by pressing the space bar.  The field's second data 
                            pointer contains choice definitions, with commas 
                            separating them.  Copies the final choice into the
                            field's variable.  The commas are not displayed.  A 
                            choice list might be "Chico,Groucho,Harpo,Zeppo".

     @115[More standard field functions]                     @-1[Previous Screen]

               @111[Index]                                      @0[Exit Help]
.92
Variable Type
The Type field in the @20[Field Edit box] displays the C variable type your
field uses.  If you select a field function from the available set with the Plus
and Enter keys, Look & Feel will automatically set the field's variable to the
appropriate type.  If you use a field function you have created, you must fill
in this field yourself.
















          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.93
Variable
In the Var field of the @20[Field Edit box], you can set a field's variable.
You can give a field any name you like, but you should only use names that are
valid C variable names.  Look & Feel will not validate variable names.

A variable serves as a field's identifier, along with its @95[number] and @94[name].

If you wish to use array elements for variables, add an array subscript to each
variable of the proper type.  You may also have to modify the variable type to
match the array type.  If you wish to use structure elements as variables you
must add the type and name of the structure to the variable name.  You only
need to assign field variables if you intend to generate code from your screen.










          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.94
Field Name
In the Name field of the @20[Field Edit box], you can give your field a name.
A field name provides a method of calling and referring to fields without using
its @95[number] or @93[variable].  Both in Look & Feel and its generated code,
you can use field names to refer to fields when you manipulate them.  Field
names are especially useful within Look & Feel, since you can easily move the
fields within a screen, which may change their field numbers.  Once you have
generated code from your screen, you can continue to use field names with
routines such as sed_GetNameVar and sed_GetNameNo.













          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.95
Field Number
Each field has an individual number, which appears in the protected field,
FieldNo, in the @20[Field Edit box].  A field number can serve as a field's
identifier, along with its @94[name] and @93[variable].  Fields are numbered
in the order of their creation, and most standard @82[field functions] pass
control among fields sequentially.  You can use a screen's @22[field list] to
restructure the order of its fields.















          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.96
Protection
You can enable and disable protection by pressing the space bar in the Protect
field of the @20[Field Edit box].

When a screen is part of a running program (either from @6[generated code] or from
@65[sfile] calls), a protected field is inaccessible with the field movement
commands and is ignored by them.  The same is true within @15[GO mode].  In all
other respects, a protected field is a normal field.  This prevents users from
altering the fields whose values are set automatically, such as those holding
dates or times.

A protected field behaves as other fields in EDIT mode.










          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.97
Data Pointers
Below the data entry fields in the @20[Field Edit box], there is an editor in
which you can enter data for the field's data pointers.  You can have up to 22
data pointers for each field.  Look & Feel (and C-scape) have pre-defined uses
for the first three--they hold information for a @105[prompt string],
@106[field validation], and @109[text formatting], respectively.

Since Look & Feel assumes that data pointers point to strings, you do not need
to use quotations around them.  If you need field data pointers that point to
data objects other than strings, you must:

(1) Put a dummy string with a null value into the field's pointer slot to make
    sure that Look & Feel will create the data pointer in the screen's sfile.

(2) In your program, load your screen from the sfile and use the function
    sed_SetFieldData (from C-scape) to set the data pointer to the value you
    desire.





          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.98
Border Functions
Like the screens which they surround, the behavior of a Look & Feel border is
defined by a set of parameters--the function which defines it, its
@101[features], and its color @74[attribute].  In the Border field of the
@10[Screen Edit box], you can attach a border to your screen from the list of
@99[standard borders].

The border has its own color attribute, and the rules which govern it are the
same as those that govern all other color attributes.  You can set this value
in the "Bord" field of the Screen Edit box's Attributes area.












          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.99
Standard Borders


bd_1         A simple, single lined border.  It does not have a title,
             @105[prompt string], or scroll lights.

bd_123       A border that displays a @105[prompt] beneath the screen (similar
             to bd_null).  Used by the slug menuing system.

bd_2         A simple, double lined border.  It does not have a title,
             @105[prompt string], or scroll lights.

bd_bar       A border with a title and a scroll bar along the right hand edge.

bd_box       A single lined border that holds a title in its top line.  It has
             no scroll lights or prompts.





             @100[More Standard Borders]                       @111[Index]
               @-1[Previous Screen]                         @0[Exit Help]
.100
More Standard Borders


bd_boxlight  A single lined border that holds a title in its top line and scroll
             lights on its side.  It has no prompt.

bd_mouse     A single lined border that holds a title in its top line, a
             @105[prompt string] position in its bottom line, and scroll lights
             on its right side.  This border always supports the mouse.

bd_mouse2    A border with the same functionality as bd_mouse, with the 
             addition of a horizontal scroll bar along its bottom.

bd_null      A non-existent border that displays @105[prompts] on the bottom
             line of the display.






             @117[More Standard Borders]                       @111[Index]
               @-1[Previous Screen]                         @0[Exit Help]
.101
Border Features
Look & Feel provides four features for @98[border]: move, resize, outline, and
top.  The move and resize features allow you to use the @72[mouse] to move
and resize the border attached to your screen.  The top feature allows you to 
click on a partially obscured screen and make entirely visible.  With the 
outline feature enabled, a screen displays only the movements of its outline 
until its final position.  You can set these features for a screen in their 
fields in the @10[Screen Edit box].

These features are enabled in @15[GO mode], when the screen is called from a
screen file, or when the screen is converted to C code.

Enabling the outline feature will do nothing unless either the move or resize
features are enabled.








          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.102
Field Deletion
You can delete a field by either using the field list or by using the block
commands.

To delete a field from within the @22[field list], press Delete while it is
the active field.  Pressing Escape will return control to the main editing
area, but will not undo changes you have made.  Enter behaves as Escape in this
situation.

To delete a field with block commands, either use @27[Block-Cutting] or
@29[Block-Delete] to remove the field from the screen.   If you do not
@28[paste] a cut block back to the screen, the field will be gone permanently.










          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.103
Main Menu Screen
The Main Menu is at the top of the screen.  It allows you to perform any of 
Look & Feel's commands.  You can call it by pressing F10.

 Loading and                                           Using Look
 saving screens,                                       & Feel's
 creating code     Creating, editing,   Using Look &   special       Leaving
 and symbol        deleting, and        Feel's text    utility       Look &
 tables.           viewing fields.      editor.        functions.    Feel.
      │                │               ┌──┘               │             │
  ╔═════════════════════════════════════════════════════════════════════════╗
  ║  @3[Disk]   @9[Screen]   @19[Field]   @25[Block]   @37[Editor]   @32[Nesting]   @41[Tools]   @46[Help]   @47[Quit] ║
  ╚═════════════════════════════════════════════════════════════════════════╝
     ┌─────────┘    ┌──────────┘                │                 └─┐
 Altering a      Copying, cutting,      Linking (and detaching)  Calling
 screen's        deleting, moving,      screens or functions     Look & Feel's
 appearance      and changing regions.  to screens.              help system.
 and parameters.

The Status Bar is at the bottom of the screen.  It shows the active screen 
and row and column within it (with the upper-left corner as 0,0). 

          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.104
Field Edit Next
From the @20[Field Edit box], you can move from editing one field to the next one
iin the screen by pressing Ctrl-N.  You can also perform this action by pressing
enter over the "Next" field.  The fields will appear for editing in the
same order listed in the @22[Field List].

If you want to change the order in which control passes among fields, you can
do so by moving them manually in the field list or by @24[sorting them].














          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.105
Prompt Strings
You can give a field a @98[border] prompt by putting a string in its first
@97[data pointer].

A border will display the prompt string if it can so.  The borders capable of
displaying prompt strings are bd_123, bd_mouse, bd_null, bd_prompt, and bd_std.
















          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.106
Validation String
In a field's second data pointer, you can include a string for validating the
field's data.  You can perform either @107[numeric] or @108[alphabetic]
validation.


















          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.107
Numeric Validation
For numeric functions, each string is a pair of numbers that specify a lower
and upper range.  The numbers are separated by a comma.  For example, the
validation string "(0,22)" specifies a range of 0 through 22, inclusive.

You can use as many number pairs as you wish.  A value is within range if it
falls within the lower and upper bounds of at least one of the number pairs.
The validation string "(2,5)(44,55)" specifies a range of 2 through 5 or 44
through 55.

Having a number absent, such as in "(4,)", indicates an open-ended range.  In
this case a value greater than or equal to 4 would be valid.

Validation strings are not checked for errors.  You must make sure they are
properly formed.







          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.108
Alphabetic Validation
For string functions, each string specifies a choice that the field may accept
as a value.  For example, the validation string

     Fred,Wilma,Barney,Betty

will not allow the user to leave the field until they have entered a name from
the list.

Validation strings are not checked for errors.  You must make sure they are
properly formed.  Also, remember to leave no spaces between the choices.











          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.109
Formatting Fields
A field's third @97[data pointer] can hold text formatting strings.  Each
character in a @110[standard format string] specifies a formatting operation to
be performed on the field's record.  An "!" character before a text formatting
character reverses the formatter's effect.

The standard field functions check the third field data pointer (data pointer
number 2) for a format string.  If one is present, the field will be formatted
according to the pointer's specifications.

If you specify mutually exclusive formatting commands, the command listed last
is carried out.  For instance, if the format string is "Ul", the field's record
will be lower case, while if the format string is "lU", the field's record will
be upper case.








          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.110
Standard Format Strings
    Normal                                Reversed
U   Converts the record to UPPER CASE.    Converts the record to lower case.

l   Converts the record to lower case.    Converts the record to UPPER CASE.

P   Converts the record to Proper Case.   Converts the record to iMPROPER cASE.

c   Removes whitespace from the record.   Removes whitespace from the record.

^   Centers the record.                   Centers the record.

>   Right justifies the record.           Left justifies the record.

<   Left justifies the record.            Right justifies the record.

,   Places commas in a numeric string.    Removes commas from a numeric string.

1-9 Places a fixed decimal point with 1   Removes a fixed decimal point.
    through 9 digits to its right.

_   Pads a string with trailing spaces.   Removes trailing spaces.

          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.111
Help Index

@108[Alphabetic Validation]    @45[Cursor Movement]                @22[Field List]   
@34[Attaching a Screen]   	 @31[Coloring a Block]			    @21[Field Mark]
@35[Attaching a Function]     @51[Dan Bricklin's Demo Program]	@19[Field Menu]
@75[Attribute Notation]       @97[Data Pointers]       	   		@94[Field Name]
@74[Attributes, About]    	 @29[Deleting a Block]          	    @95[Field Number]
@68[Auxiliary Functions]  	 @36[Detaching a screen]  	   		@96[Field Protection]
@116[Blocks and the Mouse]	 @8[Disk Import box]      	   		@80[Field Spec]
@48[Block Commands]       	 @3[Disk Menu]            	   		@93[Field Variable]
@25[Block Menu]           	 @78[Editing Bobs]        	   		@81[Field Width]
@77[Bobs]                 	 @37[Editor Menu]         	   		@55[Framers]
@101[Border Features]     	 @38[Editor Open box]     	   		@23[Global Field Edit]
@98[Border Functions]     	 @33[Embedding a Screen]  	   		@44[Global Settings]
@76[Changing Attributes]  	 @66[Explode Functions]   	   		@15[GO mode]
@18[Clearing a Screen]    	 @102[Field Deletion]     	   		@1[Help on Help]
@12[Closing a Screen]     	 @20[Field Edit box]      	   	    @114[Highlighting characters]
@6[Code Generation]          @104[Field Edit Next]				@60[Insert Mode]
                                                                



    @112[More Entries]             @-1[Previous Screen]              @0[Exit Help]
.112
Help Index, Continued

@42[Line Drawing]             @79[Regular and Selected Fields]    @65[Sfiles] 
@50[Look & Feel's Editor]     @17[RESIZE mode]                    @73[Shadow]
@103[Main Menu Screen]         @13[Screen-Next]                    @113[Sleds]
@61[Maximum Length]           @63[Screen Deletion]                @53[Slugs]
@44[Monochrome Mode]          @10[Screen Editing]                 @24[Sorting Fields]
@72[Mouse Handler]            @71[Screen Label]                   @43[Special Characters]
@16[MOVE mode]                @14[Screen List]                 	@67[Special Functions]
@62[Movement Mode]            @4[Screen Loading]                 @99[Standard Borders]
@30[Moving a Block]           @9[Screen Menu]                    @83[Standard Field Functions]
@49[Nesting, About]           @70[Screen Name]		            @110[Standard Format Strings]
@32[Nesting Menu]             @11[Screen Opening]	     	        @103[Status Bar]
@107[Numeric Validation]       @5[Screen Saving]		       		@7[Symbol Table Generation]
@28[Pasting a Block]          @64[Screen Types]				    @58[Teds]
@105[Prompt Strings]           @39[Search]					        @41[Tools Menu]
@2[Quick Keys]			     @40[Search and Replace]		        @106[Validation Strings]
@47[Quitting Look & Feel]	 @57[Seds]   		                @92[Variable Type]
													    @59[Wrap Width]



       @-1[Previous Screen]                                       @0[Exit Help]
.113
Sleds
A sled (Scrolling List EDitor) allows you to view and manipulate a list of data
whose size you cannot predict.  It has a small number of identical rows, each of
which contains one or more @19[fields] and manages its own data in internal arrays 
called column arrays.  The @93[field variables] point to successive elements in the 
column array.  The sled automatically creates and maintains a column array for 
each of its field columns.  It also governs mapping of field variables to the
data of the column arrays.

You can open a sled in the @11[Screen Open] box.  

To add a row to a running sled, press "+".  To delete a row, press "-".










          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.114
Highlighted Characters
Look & Feel allows you to highlight a character in every field.  Highlighted
characters in a @57[screen] have their own @74[attributes]; in a menu, they serve as an
identifier for the field during a search (instead of the first letter).

To highlight a character, go to the @80[spec field] of the @20[field edit box] and press
the Space Bar.  This will allow to move across the spec with the arrow keys.  
When you are over the character you wish to highlight, press F5.

Exit the the field edit box and the character you selected will now be colored 
with the screen's highlighted attributes.  You can change these attributes in
the @10[Screen Edit box].










          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.115
Enough already with the Standard Field Functions
Function       Data Type    Description

togint_funcs   int *        Identical to toggle_funcs, except it stores the 
                            choice number in the field variable instead of the 
                            string itself.                                 

xstring_funcs  char *       Extended string function--identical to string_funcs 
                            except that it accepts any character.  Useful for 
                            international keyboards with special characters.

yesno_funcs    boolean *    Displays "Yes" or "No".  Toggles when space bar, Y, 
                            or N keys are pressed.









          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.116
Block commands and field marking with the mouse
If you wish to use the mouse to perform @48[block operations], perform the following
steps:
	
	(1) Click on one corner of the region you wish to manipulate.

	(2) Drag the mouse to mark the region.

	(3) Release the mouse.

This will pop a list of block commands, including @30[Block-Move], @27[Block-Cut], 
@26[Block-Kopy], @31[Block-Attr], and @29[Block-Delete]; the command @21[Field-Mark] is also on 
the list.  Select the action that you wish to take and Look & Feel will proceed
with the action (identically to calling the menu choice or using a @2[quick key].

Remember that fields are only one row tall.  If you use the mouse to mark a 
region more than one row tall and select Field-Mark to turn that region into a 
field, Look & Feel will use the top row of the region for the field.




          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.117
Even More Standard Borders


bd_plain     A simple border with single lines along its top and left sides and
             double lines along its bottom and right sides.

bd_prompt    A single lined border with a @105[prompt string] position in the
             bottom line and a title in its top line.  It has no scroll lights.

bd_std       The standard Oakland border.  It has a title, a @105[prompt line],
             and scroll lights, on the top, bottom, and left sides,
             respectively.

bd_title     A border with single lines along its top and left sides and double
             lines along its bottom and right sides.  It has a title and scroll
             lights, but no prompt area.






          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
.118
Freshening the Screen
This command, Screen-Freshen, clears and redraws the screen, in the event that 
any "trash" appears on the screen, from line noise, OS messages, or other 
sources.  This command is specifically designed for multi-tasking operating 
systems, such as UNIX, VMS, and QNX.  

The @2[quick key] for this command is Ctrl-Z.















          @111[Index]                @-1[Previous Screen]              @0[Exit Help]
