AGI Base Logic Generator 2.0 Source Code ReadMe

For the Release Version of BLG Version 2.0

AGI Base Logic Generator written by Joel McCormick
Base Logic Generator © 1998-2002 Joel McCormick

Contents

  1. Programming Language
  2. Source code organization
  3. Conditions of Modificiation

Programming Language

The BLG is written in C++. It makes use of classes, default parameters, C++ style casts (reinterpret_cast, static_cast), and other C++ features.

Source Code Organization

The source code is heavily modularized. The portions of the program that have nothing to do with the user interface have been separated into their own source files to make porting the BLG to other platforms a little easier. With regard to the user interface files, for each window there are, when applicable, three different source files: A main file which sets up the window and displays it; an event handlers file that contains windows message handlers (for example, WM_COMMAND); a UI file, which contains code for responding to the actions of the user. Although it might seem like this modularization is a bit excessive, I think it makes things easier to find once you get used to it, and it keeps the source files for the windows from getting enormous.

For the code that I have written, the application entry point, WinMain, is contained in the file AGIBLG.cpp. Definitions that are needed throughout the BLG source code are defined in BLGDefs.h and BLGDefs.cpp. There are a number of dialogs used in the BLG, and the source files related to these dialogs is Windows-specific:

The options dialog is a property sheet. Each page of the property sheet is essentially a dialog box of its own. These include the following:

The rest of the Windows-specific files are as follows:

The rest of the files can be used in a non-Windows port of the BLG, although possibly not as-is:

The remainder of the files are Visual C++ files.

Conditions of Modification

You are permitted to make modifications to the BLG source code, to add features or fix bugs or whatever. If you make modifications, however, there are a few guidelines you should follow: