--------------------------------------------------------------------
                       User- Document

                            for 
            
                      Create_Table v1.0 
                (by Carsten Labinsky, 18.12.95)
--------------------------------------------------------------------

Contents:

    1. Introduction
    2. Legal notice
    3. Requirements
    4. Installation
    5. Usage
    6. Settings
    7. History

(For information about how to reach the author, read the file
 register.doc [You should read it for legal info's anyway])

===============================================================
=                                                             =
= IMPORTANT BUG-NOTICE:                                       =
=                                                             =
= At least the german version of FinalWriter v4.01 does not   =
= handle text-object-coordinates correctly.                   =
= The TOP-value contains in fact the y-coordinate for the     =
= text's BASELINE (which is approximately 0.7 * HEIGHT below)!=
=                                                             =
= Create_Table provides a WORK-AROUND which is ENABLED by     =
= default. If you use a different version of FinalWriter      =
= and find the text-objects scattered in y-direction, set     =
= FW4_BUGFIX to FALSE (see 6:Expert-User-Settings).           =
=                                                             =
===============================================================



1. Introduction
===============

This is a powerful AREXX-Macro for FinalWriter.  It supports the
creation of auto-sized tables of variable widths and heights.
Since table-handling is not supported in FinalWriter, this macro
may save you a lot of time and frustration while creating them
by hand.

It will ask you for the table-data using FW's requesters and
create a table through the use of FW's standard objects like
lines, boxes and text-objects. Layout processing is done auto-
matically, based on your settings.

The result is a grouped object, that can be sized, copied and
placed just like any other graphic-object.

Features include:
  - variable table dimensions
  - customizable line widths for grid-box
  - round or normal grid-box corners
  - equally balanced line and column widths
  - vertical and/or horizontal header entries
  - multiple lines of text as table entries
  - centered or left-justified text entries
  - individual text-style support
  - optional title-text
  - customizable text-flow

A FW-Document with examples of created tables is included into
the archive to demonstrate all of its features.


2. Legal notice
===============

This archive is distributed as SHAREWARE (fee is 15 DM or $15
US-DOLLARS).  

IF RE-DISTRIBUTED, NO CHANGES MUST BE MADE TO THIS PACKAGE.
DISTRIBUTION FOR COMMERCIAL PURPOSES IS PROHIBITED. 

YOU MAY USE THIS SOFTWARE FOR 4 WEEKS WITHOUT REGISTRATION.

Read the file "register.doc" for full info's about legal
issues.
    

3. Requirements
===============

The Create_Table-Macro does not require any additional libraries or
programs (except FinalWriter and AREXX, of course ;).

It was developed for FinalWriter V4, but should work with earlier
versions also. I tried it with V1, and it seems to function.


4. Installation
===============

This archive contains the following files:

    FW_Tables/ (dir)
        Create_Table.demo           FW-Doc with Table-Examples
        Create_Table.demo.info
        Create_Table.doc            This file
        Create_Table.doc.info
        register.doc                Doc about legal issues 
        register.doc.info
        Create_Table                The AREXX-Macro


To install the macro, you will have to:

a) Copy the file "Create_Table" to FinalWriter's macro-directory,
   e.g.: [your path]/FinalWriter/FWMacros/

b) Start FinalWriter and add the macro to the user-menu (look at your 
   FinalWriter manual for further details on how to add items to the 
   user-menu).


5. Usage
========

A table-layout done with Create_Table looks similar to this:

           [Col1]       [Col2]     [Col3]    [Col4]    [ColN]

        ----------------------------------------------------------
        |          ||            |   ***   |       |   *** ***   |    horiz.
[Line1] |  ******  ||  ********  |  *****  | ** ** | ****** **** | <= Header
        |          ||            |   ***   |       |   ***** *   |
        |----------++------------+---------+-------+-------------| < doubled hor.
        |----------++------------+---------+-------+-------------| < headerline
        | *** **** ||            |         |       |             |
[Line2] |  ******  ||  ***** *** |  ** **  |       |  *** ****   |
        | *** **** ||            |         |       |             |
        |----------++------------+---------+-------+-------------|
        |          ||            |         | ** ** |             |
        |   ****   || *** ** *** |         |  ***  |    ****     |
[LineM] |  ** ***  || ******* ** |  *****  | ***** |   ** ****   |
        |   ****   ||  *** ***   |         | ** ** |    ****     |
        |          ||            |         | ***** |             |
        ----------------------------------------------------------
            ^      ^^         >Titlestring<
   vert.    |    doubled
   header---+    vertical
                headerline


Before we start, a note on requesters in general: If you hit the
"Abort"-Button, the creation process will be canceled and all your
inputs are lost (expcept mentioned otherwise).

Ok, you were warned, so now we can have a look at how to create a table
in a step-by-step manner. Step numbers in brackets (e.g. '(9)' are
optional. See settings section):

    1. Invoke the Makro.

    2. The Shareware-Requester pops up. You have to wait 15 secs,
       before you may proceed.

    3. You are requested for the number of lines and columns.
       Enter values greater than 1.

    4. Select a method for text-justification:
       Options are: "Center" or "Left"

   (5). You are asked, if you want a doubled horizontal line
       as a seperator between Line1 and Line2.
       Hit "H-Hdr" or "No". (Remember: "Abort" cancels the table)

   (6). Same as above, but for vertical line between Col1 and Col2.

    7. You are asked, if you want all Lines to have the same
       Height (according to the maximum height of all matrix-cells).
       "Equal" selects this feature.
       "No"    sizes all lines individually (to max. height of the
               maxtrix-cells in the line)

    8. Same as above, but for Column-Widths.

   (9). You are asked for the title-string. This may begin with
       an optional text-style-def (see 10. for a full explanation).       
       
       Input-format:
       {text-style}Titletext

       Note: Titletext may be no longer than 37 chars and MUST NOT
             countain any quote-chars ('"').
       Examples:
       a) My really boring table title
       b) {B I}My interesting bolditalic title

   10. You are requested for the texts to be placed in the table,
       starting from Line1/Col1, Line1/Col2, etc.
       E.g., if you selected 5 lines and 4 columns, you will have
       to enter 20 strings now.

       Don't get shy by the following: It looks cryptic at first,
       but offers interesting features for expert-users. (You want
       to become one, don't you?)
       If you want a quick-start, you may skip to now and read
       about multiple-lines and text-styles later.

       You can enter multiple lines per matrix-cell by using the
       line-seperator-character (default: #).

       Each line can begin with an optional type-style-def that
       is surrounded by '{' and '}'. If you don't define any
       style-defs, your preferences-settings for textobjects will
       be used.

       The input-format is:

       {text-style}Textline1# ... #{text-style}TextlineN

       - Textline1..N can be any strings with a max. of 37 characters
         (this is a limitation in FW's TextObjects). NO quote-chars
         are allowed ('"')!
         If you don't enter a string, the matrix-cell will stay empty.

       - text-style can be one or multiple of the following options:
            B        sets BOLD-flag
            I        sets ITALIC-flag
            S:<num>  sets FONTSIZE to <num> points, e.g. 12.
            W:<num>  sets FONTWIDTH to <num> in % , e.g. 120
            F:<name> sets FONTNAME to <name>, e.g. Courier
         each of these style-opts must be seperated by a space-char.

        This may look a bit complicated, but it offers a lot of
        flexibility. And you don't HAVE to use it. ;)

        Input-Examples:
        a) {B S:18 F:Times}My Bold Header
        b) Just#a#couple#of#six#lines
        c) {S:14 F:Courier}I really#{B I W:150}LIKE#Styles


   11. Sit back and watch as Create_Table in fact creates your
       table. This may take a while.
       You'll be notified by a Pop-Up-Message when your table
       is ready.


6. Settings
===========

You can change Create_Table's behaviour in many ways, by editing
the user-definable part its sourcecode. The source is loaded
with comments to make this as easy as possible.

I decided to do it this way, because
a) I assume you have a prefered layout-style and don't want
   to enter the same values every time you create a table.
b) There are already too many PopUps/Requesters anyway
   (but I didn't want to build my own GUI).

Since the variables are documented well enough in the source-
file and you need the info's there and not here, I'll give just
a short overview of them:

Line- and Box-Style settings:

- LINE_WIDTH            Set the line-width to <num> dots.
- BOX_LINE_WIDTH        Same as above, but for outer framebox
- ROUND_BOX_CORNERS     Selects round or normal framebox-corners

General Table-Layout Settings:

- DblHLineOffset        Distance between Doubled Horizontal Lines
- DblVLineOffset        Distance between Doubled Vertical Lines
                        (if set to 0, no doubled lines and requesters
                         are switched off, see: Usage, steps 5 and 6)

- EQ_LSPACING           (De)select defaults for equal line spacing
- EQ_CSPACING           (De)select defaults for equal column spacing
                        (Requesters will appear in each case, but
                         the corresponding default-button is enabled)

- COL_SPACING           Defines distance between text and vert. lines
- LINE_SPACING          Defines distance between text and horiz. lines

Text-Placement Settings:

- TITLE                 Don't ask for a titlestring (see: Usage, step 9)
- TITLE_CENTERED        Title will be centered/left-justified
- TITLE_BELOW           Title will be placed below/above
- TITLE_OFFSET          Distance between title and table-borders

- TEXT_CENTERED         Defaults for text-justification-requester
                        Options are: Center, Left.

- TEXT_FLOW             Defines textflow-method around the table
- FLOW_DIST             Defines textflow-distance

Expert-User Settings:

- SEP_CHAR              Character that is used as a line-separator
                        during text-input (default: '#')

- L_BRACKET             Char indicates beginning of a text-style
                        definition (default: '}')
- R_BRACKET             Char indicates end of a text-style-definition
                        (default: '}')
- FW4_BUGFIX            (De)selects work-around for FW4's TextObj-BUG
                        (see the BUG-NOTICE on top of this file)
- DEBUG                 (De)selects Script-Debug-Mode



7. History
==========

V1.0    (18.12.95), First public release.
