// Constructor.
 public CMiniTreeObject()
 {
     m_mtoLeft = null;
     m_mtoRight = null;
     m_mtoLeftAlien = null;
     m_mtoRightAlien = null;
 }
 // Constructor
 public CMiniTreeGroup()
 {
     m_alMembers = null;
       m_size = new SizeF( 0.0f, 0.0f );
       m_mtgParent = null;
       m_uIndividuals = 0;
       m_uStalkedIndividuals = 0;
       m_mtiBoxLeft = null;
       m_mtiBoxRight = null;
       m_mtoLastAddedObject = null;
       m_ecCrossbar = ECrossbar.eCB_Solid;
 }
        // Creates a CMiniTreeIndividual for the individual specified and adds it to the group.
        // Informs neighbouring boxes about this box.
        // bCreateLink decides whether to make this box a clickable link in the HTML.
        public CMiniTreeIndividual AddIndividual( CIndividualRecord ir, string sFirstnames, string sSurname, string sDate, bool bCreateLink, bool bCreateStalk, bool bHighlight, bool bConcealed, bool bShade )
        {
            CMiniTreeIndividual mti = new CMiniTreeIndividual( ir, sFirstnames, sSurname, sDate, bCreateLink, bCreateStalk, bHighlight, bConcealed, bShade, MainForm.s_config.m_bConserveTreeWidth );

              if( m_alMembers == null )
              {
            m_alMembers = new ArrayList();
              }
              m_alMembers.Add( mti );

              m_uIndividuals++;

              if( bCreateStalk )
              {
            m_uStalkedIndividuals++;
              }

              mti.LeftObject = m_mtoLastAddedObject;

              if( m_mtoLastAddedObject != null )
              {
            m_mtoLastAddedObject.RightObject = mti;
              }

              m_mtoLastAddedObject = mti;

              return mti;
        }
        // Adds a  CMiniTreeGroup to this group.
        // Informs neighbouring boxes about the group.
        public void AddGroup( CMiniTreeGroup mtg )
        {
            if( mtg != null )
              {
            if( m_alMembers == null )
            {
              m_alMembers = new ArrayList();
            }
            m_alMembers.Add( mtg );

            mtg.m_mtgParent = this;

            mtg.LeftObject = m_mtoLastAddedObject;

            if( m_mtoLastAddedObject != null )
            {
              m_mtoLastAddedObject.RightObject = mtg;
            }

            m_mtoLastAddedObject = mtg;
              }
        }