This will give you a vague idea of what XWorkplace is doing where and deals with the most important concepts only, so you don't get overwhelmed by all the details which come in this file.
The different subdirectories contain the different parts of XWorkplace. The layout of the subdirectories has been changed with XWorkplace V0.9.0 to allow for easier addition of new features by people other than me. Also, since XWorkplace will be on the Netlabs CVS server, many changes had to be made to the makefiles and code layout.
001\
directory tree still contains all the
National Language Support (NLS)
for English.
BIN\
directory tree contains binary object files which
are created from the sources (below) by the various makefiles. If that
directory doesn't exist (it's not part of the CVS tree, for many reasons),
it will be created automatically by the makefiles.
The directory structure and the makefiles are designed to not depend on the
BIN
directory tree. As
a result, you can always delete the entire BIN
directory or any single files in there to enforce a complete or partial recompilation
by the makefiles.
IDL\
directory contains SOM IDL source files for
the various XWorkplace classes. The .DEF
files in this
directory are created automatically by the SOM compiler (SC.EXE
),
but not used in the build process (see below).
When invoked by the
makefile, the SOM compiler is told to update the C sources in SRC\CLASSES
and write the class header files (*.h
, *.ih
) to
INCLUDE\CLASSES
.
In general, all SOM code should be in the CLASSES
subdirectories.
Since several people might be working on the same classes, the code in
CLASSES
should only call implementation
code in other directories of SRC
, which should be prototyped in
a corresponding subdirectory of INCLUDE
.
INCLUDE\
directory tree has all the headers for
XWorkplace.
In that tree, INCLUDE\CLASSES\
has the headers which are
generated by the SOM compiler from the IDL files in the IDL
directory (above). There is no hand-written code in that directory.
INCLUDE\HELPERS\
has the headers for the files in SRC\HELPERS\
(see below).
Note: This is now in a separate CVS archive on Netlabs, which is called
"xwphelpers". You need to check out that archive to be able to compile.
INCLUDE\FILESYS\
has the headers for the files in SRC\FILESYS\
(see below).
INCLUDE\SHARED\
has headers for code which might be used by several
parts of XWorkplace, developed by several people, and corresponds to
SRC\SHARED
. I guess you get the idea now.
SRC\
directory tree contains the actual C/CPP source
files for XWorkplace.
In that tree, SRC\CLASSES\
has
the SOM code for the WPS classes which will be compiled into XFLDR.DLL
.
It is this DLL which loads the NLS DLL
(XFLDRxxx.DLL
, with xxx being a language code) at Desktop startup
or when the language is changed using the "XWorkplace Internals"
settings page. See this page for more.
The SRC\HELPERS\
subdirectory contains a lot of C files with
helper functions which are independent of XWorkplace. That is, these can be used with
any OS/2 VIO and/or PM program. The functions are grouped into categories.
See this page for more.
Note: This is now in a separate CVS archive on Netlabs, which is called
"xwphelpers". You need to check out that archive to be able to compile.
The SRC\HELPERS\
dir also contains files from Dennis Bareis' PMPRINTF package,
which is available in full from his homepage. Refer to the
"Debugging XWorkplace" section
for details.
The other subdirectories in SRC\
contain implementation code for
XFLDR.DLL
(called by the SOM code in SRC\CLASSES
)
or external programs which are part of XWorkplace, such as NetscapeDDE and Treesize.
TOOLS\
contains some tools used by the makefiles.
See Making XWorkplace.