\documentstyle[12pt,a4,doublespace]{article} 
%
% No idea why these numbers work, but they do. Generates output for
% A4 conference mats.
%
\setlength{\textwidth}{6.00in}
\setlength{\oddsidemargin}{0.0in}
\setlength{\topmargin}{-0.0in}
\setlength{\textheight}{9.5in}
\parindent 0pt
\setstretch{1.5}

\begin{document}         

\title{ FDB \\ [35mm] Family Tree Database Version 2.3 \\ [30mm]}  
\author{Andy Burrows \\ [30mm] }
\date{4$^{th}$ August, 1994}
\maketitle

\newpage

\tableofcontents

\newpage

\section{Introduction}

This is the FDB family tree database program. It was designed (well, all right $\ldots$ evolved really) 
to allow for the easy creation and editing of information regarding family ties. It's an aid 
to genealogical research (I hope!). Information regarding relations can be entered and edited 
using the graphical user interface elements and then output produced, both graphical and 
textual, in \LaTeX~ and PostScript (for those who can afford the printers!).\\

On running the program the main information entry/display window appears. The information
regarding the current person is shown here. The database may be traversed from person to person
following relationships by clicking on the name of the person whose information you wish to view.
Click on the mother or father buttons to make the current persons mother or father the new 
current person, for example.\\

N.B. One of the most important distinctions to bear in mind when using this program is that 
between \underline{adding} an entry and \underline{selecting} an entry. 
\underline{Adding} an entry involves the creation of a 
new database record whereas \underline{selection} involves picking an entry which is already in the 
database. Thus if, for example, you add a mother entry for someone, a new database record is 
created with empty fields (apart from the fact that one of her children is the current person)
whereas if you select a mother a list of eligible females already in the database is presented
for one to be chosen.

\newpage

\section{Menus}

The row of menu buttons at the top of the data entry window control most of the
operation of the database. They allow for various activities
such as selection/deselection of relationships, addition/deletion of database entries, 
loading/saving of database files. Also, the graphical viewers and hardcopy options are 
controlled from here. The menus and their options are described in the
following sections.

\newpage
\subsection{''File'' Menu}

This menu controls general file access and has
the following options:

\begin{itemize}
\item "Load"       - displays a list of database files for possible use. Selecting a file
               causes it to be loaded, overwriting the currently loaded database. 
               N.B. when a new directory is entered all files in the directory are
               checked to see if they are either directories themselves or possible
               database files. This can take a little while if there are a lot of files
               in the directory.

\item "Save"       - Save the information in the current database to the current database
               file (displayed at the bottom left of the main window).

\item "Save as $\ldots$" - Displays a list of database files in the current directory to which
               the current database may be written Alternatively, a new name may be 
               entered.
               N.B. when a new directory is entered all files in the directory are
               checked to see if they are either directories themselves or possible
               database files. This can take a little while if there are a lot of files
               in the directory.

\item "Properties" - Displays a window allowing the definition of various display and
               output parameters.

\item "Exit"       - Exit from the program. The user is asked to confirm this action.
\end{itemize}

\newpage
\subsection{''Add/Delete'' Menu}

This menu controls the addition of new entries to
the database and the deletion of existing entries. The 
options are:

\begin{itemize}
\item "Add Mother Entry"
              - Add a new entry as the mother of the current person. The mother becomes
              the new current person. If the current person already had a mother,
              this relationship is removed.

\item "Add Father Entry"
            - Add a new entry as the father of the current person. The father becomes
              the new current person. If the current person already had a father,
              this relationship is removed.

\item "Add Spouse Entry"
            - Add a new entry as a spouse of the current person. The new spouse 
              becomes the current person.

\item "Add Child Entry"
            - Add a new entry as a child of the current person. The new child 
              becomes the current person.

\item "Add New Entry"
            - Add a new entry unrelated to anyone currently in the database. The new 
              person becomes the current person.

\item "Delete Current Entry"
             - delete the entry for the current person from the database. Any relationships to the
               deleted entry are also removed. This is the only option which actually
               deletes an entry from the database.  Thus, for example, to delete a 
               spouse of someone, make that spouse the current person and then select
               this option.
\end{itemize}
        

Note that if, for example, you wish to add a mother for the current person and an entry for 
the person who is to be the mother already exists in the database, use the ''Select'' menu 
instead.

\newpage
\subsection{''Select'' Menu}

This menu controls the creation of links (relationships e.g. mother of, child of etc.)
between entries already in the database. The options are:

\begin{itemize}
\item "Select New Current Entry"
             - this option doesn't actually create any relationships. A list of all
               entries in the database (that are not accessible directly from the 
               current entry) is presented, the selected person becomes the new 
               current person. This is simply a database traversal function.

\item "Select Mother Entry"
             - A list of all females who are not already related to the current 
               person is presented, the selected person is linked to the current
               person as their mother. If the current person already has a 
               mother, this relationship is removed.
               
\item "Select Father Entry"
             - A list of all males who are not already related to the current 
               person is presented, the selected person is linked to the current
               person as their father. If the current person already has a
               father, this relationship is removed.
               
\item "Select Spouse Entry"
             - A list of all members of the opposite sex who are not already
               related to the current person is presented, the selected person is
               added to the list of spouses of the current person. 

\item "Select Child Entry"
             - A list of all members of the database who are not already related
               to the current person is presented, the selected person is added to the 
               list of children of the current person. 
\end{itemize}

Note that these options do not add entries to the database, they make links (relationships) 
between already existing members. If you wish to add a new person use the "Add/Delete" menu.


\newpage
\subsection{''Deselect'' Menu}

This menu controls the removal of relationships between entries in the database. The options 
are:

\begin{itemize}
\item "Deselect Mother Entry"
            - deselect the mother of the current person.

\item "Deselect Father Entry"
            - deselect the father of the current person.

\item "Deselect Spouse Entry"
            - displays a list of the spouses of the current person. The selected
              spouse is removed from the list of spouses of the current person.

\item "Deselect Child Entry"
            - displays a list of the children of the current person. The selected
              child is removed from the list of children of the current person.
\end{itemize}


Note that these options do not delete entries from the database, they merely remove 
relationships between them. To delete an entry from the database, select that entry 
as the current person and use the "Delete Current Entry" option of the "Add/Delete" Menu.


\newpage
\subsection{''Output Menu''}

This menu controls the hard copy output. The options are:

\begin{itemize}

\item "Output Current Person"
            - create a file containing the information relating to the 
              current person. The file is titled using the current persons initials
              and surname with either .ps or .tex as the extension depending on
              the currently selected output format. A unique integer is inserted before
              the extension if necessary to avoid overwriting existing files.
              
\item "Output Entire Database"
            - create a file containing all information in the database. The
              file is titled using the name of the current database file with
              either .ps or .tex as the extension depending on the currently
              selected output format. A unique integer is inserted before the
              extension if necessary to avoid overwriting existing files.
              
\item "Output Current Descent Line"
            - create an A4 plot in PostScript of the current descent line. The file
              is titled name\underline{~}lineN.ps where name is the person whose descent is being
              plotted and N is a unique integer used if necessary to avoid overwriting
              existing files.

\item "Output Current Descendants Tree"
            - create an A4 plot in PostScript of the current descendants tree line.
              The file is titled name\underline{~}treeN.ps where name is the name of the person 
              whose descendants are being plotted and N is a unique integer used if
              necessary to avoid overwriting existing files.

\end{itemize}


Note that before calling either of the last two options the appropriate plot should have been
created using the "View" menu.

Note also that no un-matched parentheses should be used in any text entry which is going to be
written to PostScript, nor should any \LaTeX~ special character (e.g. %) be used in any text
entry which is going to be written out in \LaTeX~ format. I hope to fix these limitations in a
later release (heard that one before!) but for now $\ldots$


\newpage
\subsection{''View'' Menu}

This menu controls the generation of on-screen graphical displays. The options are:

\begin{itemize}
\item "View Male Descent Line"
            - creates a display of the male descent of the current person,
              up to the number of generations specified by the current setting 
              of "Max. Generations in Descent Line" (select the ''Properties...''
              option of the 'File'' menu).
     
\item "View Female Descent Line"
            - creates a display of the female descent of the current person,
              up to the number of generations specified by the current setting 
              of "Max. Generations in Descent Line" (select the ''Properties...''
              option of the 'File'' menu).
     
\item "View Descendants Tree"
            - creates a display of the descendants of the current 
              person, down to the number of generations specified by the
              current setting of "Max. Generations in Descendants Tree"
              (select the ''Properties...'' option of the ''File'' menu).
              Due to the recursive nature of the tree generation situations can occur
              where information occasionally overlaps for people with only
              one child. For this reason and also to allow extra flexibility
              the horizontal separation of the entries in the descendants
              tree can be controlled using the ''Descendants Tree Horizontal Spacing''
              slider (select the ''Properties...'' option of the ''File'' menu).
\end{itemize}


Note that clicking on a person (not a spouse) in either the descent line or descendant tree
display causes them to become the current person.

\end{document}

