


                                                                      








                                TOOLS FOR C
                       Application Development Package
                                  MENUGEN
                     Interactive Window and Menu Generator  


                      Shareware Distribution Version 1.0






         This version of TOOLS FOR C and it's associated manuals and
         support files may be freely copied and distributed as long as
         it is distributed in it's entirety and no fees other than
         nominal handling fees are charged.  The routines in this
         library are NOT Public Domain.  This is copyrighted material. 
         The intent behind distributing this version of TOOLS FOR C is
         to allow you to use the package on a trial basis and determine
         if it meets your needs.  If you find yourself using this
         package, you MUST register by sending $45.00 to the address
         listed below.  Upon receipt of your registration fee we will
         send you an expanded manual, compiled libraries for all of the
         memory models available with your compiler, and the complete
         source code to the library. In NO EVENT may you use any of the
         routines in TOOLS FOR C for commercial purposes until you
         register your copy.  We feel that you will find the value of
         TOOLS FOR C far exceeds the registration fee and we at BP
         SOFTWARE SOLUTIONS, INC. thank you in advance for your
         support.
         




                        BP Software Solutions, Inc.
                        642 N. Commodore Drive
                        Plantation, Fl.  33325





                                          Copyright (C) 1987 
                                                BP Software Solutions Inc.
                                                       All Rights Reserved









                                INTRODUCTION



         MENUGEN is a program which, in concert with the TOOLS FOR C
         function library, allows you to quickly and interactively design
         pop-up windows and menus for your 'C' programs. Because it
         generates 'C' code which you "#include" in the source code of
         your program, implementing these windows and menus is a snap. 
         What you see on the screen is what you get when the file
         that is produced by the generator is incorporated into your 'C'
         code.

         MENUGEN has the power you need to exercise full control over the
         development of menus and windows for your programs. You can
         control the size of the window, it's location, type of graphics
         used for the window borders, attribute of the border and the
         attribute of the area inside the window.  There is no limit to
         the number of menu selections allowed in a window.  If you can
         fit it into the window, it will work!  You can put the menu
         selections anywhere within a window you wish... e.g., single
         columns, double columns, triple columns, etc., or even random
         placements!  

         Included in the TOOLS FOR C Application Development Package is a
         copy of MENUGEN.EXE, three object module libraries, and
         necessary reference manuals in DOS text form.  There is an
         object module library for the small memory model of each
         supported compiler (Lattice C (R) version 3.x, Microsoft C (R)
         version 4.0, and Turbo C (R) version 1.0).  These are all you
         need to start building your Menus and Windows.  As a matter of
         fact, this was all that was used in producing the MENUGEN
         program.

         MENUGEN has two main sections.  The first allows you to define
         a window structure.  If a window is all you need, then you
         simply write the structure to an #include file and leave the
         program.  If you want to define a menu, then you must first
         define a window for it.  After it's window is defined, you enter
         the other section of the program.  This section allows you to
         define the menu's cursor type, title, and the positions,
         video attributes, and functions of each of the menu selections. 
         After you are satisfied with your menu you write it's
         structures to an #include file, just as you would for a window. 

         We recommend that you work through the tutorial to get an
         overview of MENUGEN'S capabilities.



                                  TUTORIAL

    Getting Started 

         First, load and run the program "MENUGEN.EXE". When you're
         through reading the title page, press any key to continue.

         The next screen you see will be mostly blank except for the
         Help Lines (two lines on top of the screen) and the Cursor
         Status (an area on the bottom of the screen).  These can be
         toggled on and off independently by pressing [F1] or [ALT-F1]. 
         The [F1] key toggles the Help Lines, and [ALT-F1] toggles the
         Cursor Status Area. 


    Cursor Movement

         The cursor can be moved around the screen using the arrow keys,
         HOME, END, PGUP and PGDN keys.  As you move the cursor around
         the screen notice that the cursor position is being displayed
         near the lower left hand corner of the screen.  The cursor
         location is relative to 0,0 being the upper-left-corner of the
         screen.  The UP,LEFT,RIGHT and DOWN arrow keys will move the
         cursor one character position.  The HOME, PGUP, END and PGDN
         keys will move the cursor to the corners of the screen.
    
              Key      Screen Location                   Col    Row
             ======================================================
             HOME      Upper Left  Corner of screen        0      0
             PGUP      Upper Right Corner of screen       79      0
             END       Lower Left  Corner of screen        0     24
             PGDN      Lower Right Corner of screen       79     24


    Set Anchor

         The 'Anchor' represents one corner of your window.  The SET
         ANCHOR key, [F2], toggles the Anchor ON and OFF.  When the Anchor
         is toggled ON, the "Anchor Set" message is shown in the lower
         left corner (assuming you haven't toggled the status area OFF
         with [ALT-F1]).

         To begin defining a window, move the cursor to an area on the
         screen which will represent a corner of your window.  Set the
         Anchor (Press [F2]).  Draw your box using the cursor movement
         keys.  


    Swap Anchor

         Press [F3] to "Swap Anchor".  This function swaps the current
         cursor position with the Anchor.  The original Anchor position
         becomes the new cursor position and the original cursor position
         becomes the new Anchor position.  This greatly adds to the
         flexibility of the window definition.



    Border Type

         Press [F4].  A window will pop up in the middle of the screen.
         By pressing the UP and DOWN arrow keys, you can scroll through
         the selection of border types for the window.  The border type
         of your window will change as you move up and down the selection
         list.  (The border of the window which popped up in the middle
         of your screen will change also).  When you find a selection
         you're happy with, press ESC.  You'll be left with the selected
         border type.


    Border Attribute

         Press [F5].  A menu will pop up with attribute options. The UP
         and DOWN arrow keys will move you through the menu selections. 
         Press [RETURN] when the desired selection is high-lighted.  An
         alternate method of selecting an option is by pressing a number
         (1-6) for the 6 predefined attributes or the letters 'U'or 'u'
         for 'User Defined '(if the desired attribute isn't among the
         selections).

         Choose an attribute using selections 1-6.  Notice that the
         attribute of the border changes as the selection is made.  Now
         choose the "-USER DEFINED-" option.  A window will open which
         will prompt you for a 'Border Attribute'.  Enter a number in
         hexadecimal form and press [RETURN]. The window will be updated
         with the new attribute and you'll be returned to the 'BORDER
         ATTRIBUTE' menu.  When you've completed your selection, pressing
         ESC will exit this function.


    Fill Attribute

         Press [F6].  A menu will pop up with the Fill Attribute Options.
         You can define the attribute of the inside area of your windows
         (fill attribute).  Selections are made in this menu the same way
         they're mad in the 'Border Attribute Menu' above.  You can
         choose one of the selections offered, or enter the attribute via
         the '-USER DEFINED-" option.  Again, pressing ESC will exit this
         function.


    Write (Generate) the code.

         You've just defined a window!  Let's write the code to a file. 
         Press [F9].  A window will open prompting you for a header
         file name. Enter the name of a file you wish to save this to. 
         (This must be a legal DOS file name format... no spaces allowed,
         8 characters plus an optional 3 character extension separated by
         a period).   Let's call the file "TEST1.HDR".  (Type TEST1.HDR
         as the file name and press [RETURN]).

         If the name you've entered as the file name already exists, a
         window will pop up warning you of this.  You're given the options
         of either 'Replacing' the file, 'Browsing' the file, 'Appending'
         to the file or aborting this function. For this example, choose
         the "Replace" option to make sure we have a fresh file called
         "TEST1.HDR".



         You'll next be prompted for the name of the window.  This is the
         name which you'll use to identify this window in your code. It's
         length should conform to the limits set by your compiler. Let's
         call our window "testwndw". Enter "testwndw" (without the
         quotes, of course) as the window name.

         The Menu/Window Generator will create a file that can be
         included in your 'C Code'.  Its contents will resemble ...

            /******    Include file for testwndw Window   ******/
            struct WNDW testwndw_structure =
               {'','','','','','','','',' ',0x7,0x7,5,4,72,
                                                20,0,0,0,NULL,NULL,NULL};
            WNDW *testwndw = &testwndw_structure;

         This file when #include'd in your code can be used as
         demonstrated in the following code fragment...
    
         #include <stdio.h>
         #include "tools4c.h"
         #include "test1.hdr"

         main()
         {
             vid_type();             /* necessary call to determine */
                                     /*   type of video adaptor     */
             open_window(testwndw);
             .
             .
             .
             close_window(testwndw);
         }
    

         if preferred, the file can be physically included in your code...

         #include <stdio.h>
         #include "tools4c.h"

         /******    Include file for testwndw Window   ******/
         struct WNDW testwndw_structure =
            {'','','','','','','','',' ',0x7,0x7,5,4,72,
                                             20,0,0,0,NULL,NULL,NULL};
         WNDW *testwndw = &testwndw_structure;

         main()
         {
             vid_type();
             open_window(testwndw);
             .
             .
             .
             close_window(testwndw);
         }



    File Browse

         'File Browse' allows you to view any text file.  You can scroll
         up and down through the file a line at a time or a page at a
         time. It allows horizontal scrolling, (good if your text is
         wider than 80 columns), and it allows you to jump to the
         beginning or end of the file.  You can safely use browse to view
         your program code or any other text file without worrying about
         altering the file.

             Key                Function
             =================================================
             UP    Arrow       Scroll UP one line 
             DOWN  Arrow       Scroll Down one line
             RIGHT Arrow       Scroll Right 
             LEFT  Arrow       Snap to beginning of the line
             PGUP              Scroll up one Screen
             PGDN              Scroll down one Screen
             HOME              Goto beginning of the file
             END               Goto end of the file
             ESC               EXIT


    DOS Shell

         Pressing the DOS shell key, [F10], loads and executes another
         copy of COMMAND.COM above MENUGEN.  Type "exit" at the DOS
         prompt to return to MENUGEN.  DOS must be able to find a copy of
         COMMAND.COM in the path defined by the environment variable
         "COMSPEC".


    Define Menu

         Pressing [F7] drops you into the menu definition subsection of
         the program.  Before beginning to define a menu, you should
         define the menu's window completely.  Window size and position
         are the only changes you can make to the window after entering
         the menu subsection.  

         When you press [F7], you will notice the cursor now moves inside
         the window.  Use the cursor, Home, End, PgUp, and PgDn keys to
         move to the starting position of the first menu selection. 
         Pressing [F7] again begins the selection definition process.

         From here on, the best way to learn the power of MENUGEN is to
         experiment.  The help lines on the top of the screen will direct
         you through the each phase of the process.  Pop-up windows and
         sub-menus allow you to define the menu's video attributes, title,
         screen position, window size, and each selection's screen
         position, video attributes, function calls, etc.

         Once your menu is defined, pressing [F9] allows you to write the
         structure code for the menu to an #include file, just as you did
         for a window.



         
    Conclusion

         This tutorial is not a complete reference manual for MENUGEN, but
         is instead intended only to get you started.  Most of MENUGEN's
         features are obvious from the help line's prompts.  With a
         little experimentation, you will be efficiently defining windows
         and menus in no time at all.  A complete reference manual on
         MENUGEN, an expanded Reference and User Manual for the TOOLS FOR
         C Library, the complete source code to the library and compiled
         libraries for all of the memory models for your compiler is
         included in the package sent to you when you register your copy
         of TOOLS FOR C.  Use the form below to register your copy today.



                              THE TURBO LIBRARY
                            USER REGISTRATION FORM

         ============================================================

         Please list this form to your printer and use it to register
         your copy.  Send the completed form and a check for $45.00 to:

                             BP Software Solutions, Inc.
                             642 N. Commodore Drive
                             Plantation, Fl.  33325

         Florida residents please be sure to include the 5% FL. state
         sales tax ($2.25).

         ------------------------------------------------------------

         Name ______________________________________________________

         Company ___________________________________________________

         Address ___________________________________________________

         City _________________________ State _______ Zip __________


         Compiler_______________________________  Version __________


         Comments: _________________________________________________

         ___________________________________________________________

         ___________________________________________________________

         ___________________________________________________________


