Source Code (Use browser search to find items of interest.)

Class Index

kdevelop'CClassTreeNode (./kdevelop/kdevelop/classparser/ClassTreeNode.h:43)

class CClassTreeNode
{
public: // Constructor and Destructor

  CClassTreeNode();
  ~CClassTreeNode();

public: // Public attributes
  
  /** The name of this node. */
  QString name;

  /** The actual class data. */
  CParsedClass *theClass;

  /** All children of this class(if any). */
  QList<CClassTreeNode> children;

  /** Is this class present in the system? */
  bool isInSystem;
  
public: // Public methods

  /** Set the nodename. */
  void setName( const char *aName ) { name = aName; }

  /** Set the class data. */
  void setClass( CParsedClass *aClass );

  /** Tells if we found this class in the system. */
  void setIsInSystem( bool aState ) { isInSystem = aState; }

  /** Add a child to this class node. */
  void addChild( CClassTreeNode *aChild );

  /** Print this node(and its' children to stdout). */
  void out();

public: // Public queries

  /** The width of this nodes' subtree. */
  int width();
};

kdevelop'CClassTreeNode::CClassTreeNode() (./kdevelop/kdevelop/classparser/ClassTreeNode.cc:50)

CClassTreeNode::CClassTreeNode()
{
  children.setAutoDelete( false );
  isInSystem = false;
}

/*---------------------------------- CClassTreeNode::~CClassTreeNode()
 * ~CClassTreeNode()
 *   Constructor.
 *
 * Parameters:
 *   -
 * Returns:
 *   -
 *-----------------------------------------------------------------*/

kdevelop'CClassTreeNode::~CClassTreeNode() (./kdevelop/kdevelop/classparser/ClassTreeNode.cc:65)

CClassTreeNode::~CClassTreeNode()
{
}

/*********************************************************************
 *                                                                   *
 *                    METHODS TO SET ATTRIBUTE VALUES                *
 *                                                                   *
 ********************************************************************/

/*------------------------------------------- CParsedClass::setClass()
 * setClass()
 *   Set the class data.
 *
 * Parameters:
 *   aClass           The new class.
 *
 * Returns:
 *   -
 *-----------------------------------------------------------------*/

kdevelop'CClassTreeNode::setClass() (./kdevelop/kdevelop/classparser/ClassTreeNode.cc:85)

void CClassTreeNode::setClass( CParsedClass *aClass )
{
  assert( aClass != NULL );

  theClass = aClass;
}

/*------------------------------------------- CParsedClass::addChild()
 * addChild()
 *   Add a child to this class node.
 *
 * Parameters:
 *   aChild           A new child.
 *
 * Returns:
 *   -
 *-----------------------------------------------------------------*/

kdevelop'CClassTreeNode::addChild() (./kdevelop/kdevelop/classparser/ClassTreeNode.cc:102)

void CClassTreeNode::addChild( CClassTreeNode *aChild )
{
  assert( aChild != NULL );

  children.append( aChild );
}

/*********************************************************************
 *                                                                   *
 *                           PUBLIC METHODS                          *
 *                                                                   *
 ********************************************************************/

/*---------------------------------------------- CParsedClass::out()
 * out()
 *   Print this node(and its' children to stdout).
 *
 * Parameters:
 *   -
 * Returns:
 *   -
 *-----------------------------------------------------------------*/

kdevelop'CClassTreeNode::out() (./kdevelop/kdevelop/classparser/ClassTreeNode.cc:124)

void CClassTreeNode::out()
{
  CClassTreeNode *aChild;

  cout << "(";

  cout << theClass ? theClass->name.data() : "??";

  for( aChild = children.first();
       aChild != NULL;
       aChild = children.next() )
  {
    aChild->out();
  }
  
  cout << ")";
}

/*---------------------------------------------- CParsedClass::width()
 * width()
 *   The width of this nodes' subtree.
 *
 * Parameters:
 *   aChild           A new child.
 *
 * Returns:
 *   int              Width of the subtree.
 *   0                This is a leaf.
 *-----------------------------------------------------------------*/

kdevelop'CClassTreeNode::width() (./kdevelop/kdevelop/classparser/ClassTreeNode.cc:153)

int CClassTreeNode::width()
{
  CClassTreeNode *aChild;
  int retVal=0;

  // If this is a leaf return 1;
  if( children.count() == 0 )
    return 0;
  else
  {
    for( aChild = children.first();
         aChild != NULL;
         aChild = children.next() )
    {
      retVal++;
      retVal += aChild->width();
    }
  }

  return retVal;
}