TABS DRIVER FOR GENSCRNX
Version 2.6

   By  Steven Black


Unzip everything in a clean directory.

For the latest word on directives, consult the TABS.PRG file 
header.

The TABS driver takes a screen set and creates a self-contained
tab-driven screen.  This version works in all 4 platforms
supported by FoxPro.

To run the demo, DO RunMe.prg

To build the standalone SPR demo, just open SCN1.SCX.  Therein are 
*:SCREENSET directives that point to other screens in the file.

YOU MUST HAVE 3D.PRG and 3DBOX.PRG IN YOUR FOXPRO PATH.
YOU MUST HAVE GENSCRNX 2.0 and 3D 2.0


TABS DIRECTIVES

  =============================================
  DEFAULTS         WIN/MAC       DOS/UNIX
  =============================================
   *:TabMargin        5             1
   *:TabFooter        2             1
   *:TabHeader        3             1
   *:TabSCXMargin     3             1
   *:TabSCXFooter     1             1
   *:TabSCXHeader     1             1
   *:TabWidth        20            15
   *:TabSpacing       0.25          0
   *:TabHeight        1.5           2
   *:TabScheme        0             1
   *:TabPen           3             1
   *:TabStack        'OFF'         'OFF'
   *:TabTextPos      'CENTER'      'CENTER'
   *:TabTitle        Screen's title
   *:TabWindowName   'wrcontainr'  'wrcontainr'
   *:TabWClause      ''            ''
   *:TabMessage      ['Select this page']

********************************************************
=>: Indicates a new or changed directive or feature
********************************************************

=> TABS creates a m.__TABFORM memvar so you can tell if
   you are in a TABS screen with TYPE( "m.__TABFORM") <> "U"

=> To allow non-modal dialogs, TABS now brackets the container
   window with:
     IF ! WEXIST('<ContainerWindow>')
       ...
     ENDIF

 TABS Directives Explained:


First Screen Only
=================

   Note: [<Platform>] is optional, and will set for a specific
         platform.  Example:

   *:TabWidth     12   -- Sets tab with for all platforms...
   *:TabWidthDOS  10   -- ...overrides tab width for DOS platform


   *:TabDouble                 - Container border DOUBLE
=> *:TabFooter[<Platform>]     - Form to bottom of container window
=> *:TabHeader[<Platform>]     - Container title to top of tabs
=> *:TabHeight[<Platform>]
=> *:TabMargin[<Platform>]     - Container window to inner-form
   *:TabMinimize               - Allow container minimization
=> *:TabNoCenter               - Don't auto-center the container
   *:TabNoclose                - Disallow container close
   *:TabNofloat                - Disallow container window to float
=> *:TabPen[<Platform>]        - Form boundary pen size
=> *:TabScheme[<Platform>]     - DOS ONLY -- Scheme for container window
=> *:TabSCXfooter[<Platform>]  - Bottom of tallest SCX to bottom of form
=> *:TabSCXheader[<Platform>]  - Bottom of tabs to SCXes.
=> *:TabSCXmargin[<Platform>]  - Inner-form to SCXes
=> *:TabSpacing[<Platform>]    - Tab spacing
=> *:TabStack[<Platform>]      - Cycle to next/prev form?
=> *:TabTextpos[<Platform>]    - Tab text alignment. Only CENTER LEFT supported
   *:TabTitle                  - Window title
=> *:TabWClause[<Platform>]    - Window clauses for container window
=> *:TabWidth[<Platform>]      - Tab widths (default for whole screenset)
=> *:TabWindowName[<Platform>] - Name for the container window
   *:TabZoom                   - allow container zoom


   All screens
   -----------
   *:TabLabel <label>         - Label for the tab (Defaults to the SCX title)
   *:TabIcon <icon file>      - Icon instead of/combined with text
   *:TabMessage ['']          - Message expression for tab
   *:TabWidth[<Platform>] <number>  - Override the default width
   *:TabSkip                  - Don't include screen in tab set



Any object comment, first screen
================================
   *:TabReplicate           - replicate object into subscequent screens
   *:TabXReplicate          - replicates and renames object into subscequent screens.
                              Subscequent names padded with "_" + screen number to a
                              total length of 10
                Note:  The name must include "m." for this to happen

                Example:  m.MyButton  ->  m.MyButton
                                          m.MyButton02  etc...

                Example:  m.Ok        ->  m.Ok
                                      ->  m.Ok______02
                                      ->  m.Ok______03  etc..

Any screen setup, screen > 1
============================
   *:TABREPLICATE OFF       - Don't replicate objects into this screens



Notes:
  -  This program is Public Domain.

GENSCRNX and the 3D driver are public-domain programs and are included
on this diskette for convenience only.  Consult the FoxUser Forum
libraries on Compuserve for the latest versions of these.

Many thanks to Ken Levy of Flash Creative Management Ltd for
creating and evolving GENSCRNX.

For more information or support:

      Steven Black
      76200,2110  CompuServe
