Category : C++ Source Code
Archive   : SNAPAP.ZIP
Filename : SNAPAPP.DOC

 
Output of file : SNAPAPP.DOC contained in archive : SNAPAP.ZIP

SnapApp
For Borland C++ 3.1 and the Object Windows Library
Copyright(C) John Wagner 1991-93. All rights reserved.

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

- Legal Stuff -

All other products mentioned herein are copyright and trademarks of
their respective holders. No connection of any kind exists between John
Wagner and the other products or companies mentioned.

SnapApp is free software, no price may be charged for it by anyone
except me.

SnapApp may be used by individuals, commercial and government agencies
free of charge without any additional permission or compensation.
SnapApp is written in hopes that other programmers will release tools
they have written to ease application development free of charge.

Thanks to Bob Sherburne for his time an patience while testing SnapApp.

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

- Distribution Policy -

SnapApp may not be included as part of a retail package, magazine, book
or any retail product unless prior permission is granted by me. The
acceptance criteria for inclusion in a retail package are; 1, This
document file is included with the software; 2, No additional price is
charged because SnapApp is included; 3, You send me something of value,
like a copy (or a years supply) of what you want to include SnapApp in.

SnapApp *MAY NOT* BE DISTRIBUTED BY SHAREWARE, PUBLIC DOMAIN, DISK
VENDORS, CD ROM VENDORS AND SHAREWARE RETAIL VENDORS THAT CHARGE A
DUPLICATION FEE unless said distributor sends me; something of value,
like money. U.S. Dollars, 100 of 'em to be exact. If you don't want to
do this, don't sell my program.

SnapApp may uploaded freely to BBS's, networks, and given away freely.
BBS's that charge for access may do so at their own discretion.

SnapApp is not "public domain". It is free, but I hold the copyright to
it and control of the source code. I reserve the right at some future
time to charge for the use of *future* versions of SnapApp. Since at the
time of this release SnapApp is free, I am under no obligation to
support it, and I won't.

Use SnapApp if you like it, don't use it if you don't. SnapApp is meant
for Windows programmers, and knowledge of Windows programming is assumed
from here on out. SnapApp requires Windows 3.x to run.

I may be contacted electronically on many BBS systems, echo-networks, or
by mail at: 6161 El Cajon Blvd, Suite B246, San Diego CA, 92115.

* There is no product support available for SnapApp *

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

- What is it? -

SnapApp is an application generator. It creates all the source files
needed to write a Windows application. Is that all it can do? Probably
not, but that's what I use it for. There is a section on modifying
SnapApp near the end of this file.

SnapApp is entirely open ended. Although the files I have provided
create applications using C++ and the Borland Object Windows Library
(OWL), version 3.1, there is no reason it couldn't create any type of
source files. I've also included on BoilerPlate file to create a generic
C app, but you'll have to modify the SnapApp.Ini file to use it.
Instructions for customizing SnapApp are given at the end of this
text file.

I wrote SnapApp for myself to save time whenever I start a new project.
It creates a directory if it doesn't exist, and then creates the proper
files for a bare-bones application, including a Borland .PRJ file if you
request it.

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

- Installation -

Copy all the SnapApp files and BoilerPlate (.BPT) to a sub-directory on
your hard disk and install it into one of your existing groups with
program manager. See your Windows manual for more instructions on
installing a new program.

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

- How do I use it? -

There are six options that need to be set before you generate an app.
SnapApp keeps track of all of them except the AppName, so you will only
have to set it up once.

1. AppName:
The AppName (most important!) is the path and the name of your new
application. If you enter a directory that doesn't exist, SnapApp will
confirm that you want to create it. SnapApp does check if the files it
is about to create already exist, and confirms if you want to overwrite
existing files.

NOTE: SnapApp can only create a sub-directory one level under an
existing directory. I will probably change this in future versions of
the program, but keep this limitation in mind.

2. Path to OWL:
This the fully qualified path to the OWL library that you want to use.
Mine is C:\BC\OWL\LIB\OWLWn.LIB, where 'n' is the model. If you don't
want the OWL library included, leave this section blank. Also, you can
specify any library here, not just OWL.

3. Path to ClassLib:
This the fully qualified path to the ClassLib library that you want to
use. Mine is C:\BC\CLASLIB\LIB\TCLASSn.LIB, where 'n' is the model. If
you don't want the ClassLib library included, leave this section blank.
Also, you can specify any library here, not just the ClassLib.

4. Path to your defualt project file:
This file is usually located in the \BIN directory under the directory
that you installed BC++, along with all of the other BC++ executables.
The file is usually called TCDEFW.DPR. If you don't have one, or want to
change the settings of the one you have; Start up the BCW IDE - Make
sure you have no open files or projects and then set your directories
and options the way you want them. After you are satisfied with your
settings, use the Options->Save menu selection and make sure Project
file is checked. Now, whenever you create a new project with SnapApp,
all of your options will be preserved.

NOTE: The Options->Compiler->Code Generation setting should adjusted in
your default project file. In the Defines section, add WIN30 or WIN31,
or WIN31;STRICT. If you don't do this, you will get an error message
when you go to compile as OWL requires that you define one of the above
constants.

5. AppType:
This controls the type of MainWindow that your application will have.

The three choices included with the "stock" BoilerPlates are:

1. TWindow as MainWindow
- This is your standard single window type program.

2. TMDIFrame as MainWindow
- Contains code with a menu that has a File->New Option
that creates a new child. Also has proper menu options
setup for a "Window" pull-down w/options to control
the child windows.

3. TDialog as MainWindow
- This is your standard "quick and dirty" windows
app. SnapApp uses a TDialog as it's MainWindow.

6. Options:
The Create .PRJ file option controls whether or not SnapApp will create
a .PRJ file for you. NOTE: You MUST set up the path and filename of your
default .PRJ file in the edit box above in order for SnapApp to generate
a .PRJ file for you.

After you've created an app, you can start BCW, open the .PRJ file
created by SnapApp and compile it, or add to it.

IF YOU HAVE PROBLEMS COMPILING:
If a SnapApp generated project won't compile, dont despair. Close the
project, and check all your settings under the Options menu. Check your
directory settings, check that you have at least WIN30 or WIN31 defined.
Check your linker and library settings. Make absolutely certain that all
of the settings you want in every new project are set. Then select
Options->Save and make sure you have Project selected. If you are having
problems compiling, this is where they are.

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

- Can I modify it? -

The BoilerPlate files, yes! Not the .EXE though. One thing, please DO
NOT DISTRIBUTE the modified versions of the .BPT files as part of the
SnapApp package. If you want to distribute them separately, please do,
and please give them away for free.

SnapApp generates the files by using boiler plate ASCII files. The
boiler plate files have the extension .BPT. Within a given .BPT file,
whenever SnapApp is required to insert the AppName, the leftmost column
of the line before that line has the string SNAPAPP_TAG. On the line
that SnapApp is going to insert the AppName, a %s is placed to mark the
spot that AppName goes.

Example:

Project name: Test

SNAPAPP_TAG
class T%sWindow : TWindow

Resulting line in target file:

class TTestWindow : TWindow

To create, modify, or add to the .BPT files, just add the SNAPAPP_TAG,
and the %s in the proper place. You can have up to 9 %s's per line. Each
line can be a maximum of 118 characters wide.

The SnapApp.Ini file contains the configuration options for the program.
To customize the files SnapApp uses, you will need to edit the
SnapApp.Ini file.

The [BoilerPlates] section in the ini file configures what .BPT's
SnapApp will use for a given selection. The format is like so:

FileNameRF, where R = the radio button selected, and F is 0 - n files.
The max number of files is 18.

Example:
[BoilerPlates]
FileName00=TWinCpp.Bpt
FileName01=TWinh.Bpt
FileName02=TWinDef.Bpt
FileName03=TWinRc.Bpt

If radio button 0 is selected, the .BPT files above would be used.

The [FileExts] section covers the new extension to apply to a file that
is created from the boiler plate. The same naming convention is used,
except "FileExtRF=" is used.

The [TypeOfFiles] section contains the text to put in the three radio
button selections. You can have up to three. The entry names are
"FileX=", where X is 0 - 2. If you don't use three selections, just
don't enter a "FileX" selection in the ini file.

It's pretty easy to modify the program once you figure out how things
work. Every effort has been made to ensure a robust program, but if you
modify that SnapApp.Ini, you can probably come up with a way of
crashing. I recommend keeping a backup copy of SnapApp in it's
distributed form in case something happens to your working copy.

You'll notice in the SnapApp.Ini file, some parts are REM'ed out. You
can use these REM'ed out parts to configure SnapApp to use the WINC.BPT
file that I've included to create a generic C app. If you do this, be
sure to REM out the Path to the two libraries, as they aren't needed for
a straight C app.

Also, I've included a copy of BWCC.DLL in the package. If you have
BWCC.DLL in your path, or \windows\system directory (you probably do, if
you installed BC++, you can delete the copy that comes with SnapApp.

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


- Release history and notes -

v1.0 -
3/19/93 - Initial release


SNAPAPP.DOC, Created 3/19/93