Doxygen
DiagramRow类 参考

Class representing a row in the built-in class diagram 更多...

+ DiagramRow 的协作图:

Public 类型

using Ptr = std::unique_ptr< DiagramItem >
 
using Vec = std::vector< Ptr >
 
using iterator = typename Vec::iterator
 
using reverse_iterator = typename Vec::reverse_iterator
 

Public 成员函数

 DiagramRow (TreeDiagram *d, uint l)
 
void insertClass (DiagramItem *parent, const ClassDef *cd, bool doBases, Protection prot, Specifier virt, const QCString &ts)
 
uint number ()
 
DiagramItemitem (int index)
 
uint numItems () const
 
iterator begin ()
 
iterator end ()
 
reverse_iterator rbegin ()
 
reverse_iterator rend ()
 

Private 属性

TreeDiagramm_diagram
 
uint m_level
 
Vec m_items
 

详细描述

Class representing a row in the built-in class diagram

在文件 diagram.cpp75 行定义.

成员类型定义说明

◆ iterator

using DiagramRow::iterator = typename Vec::iterator

在文件 diagram.cpp80 行定义.

◆ Ptr

using DiagramRow::Ptr = std::unique_ptr<DiagramItem>

在文件 diagram.cpp78 行定义.

◆ reverse_iterator

using DiagramRow::reverse_iterator = typename Vec::reverse_iterator

在文件 diagram.cpp81 行定义.

◆ Vec

using DiagramRow::Vec = std::vector<Ptr>

在文件 diagram.cpp79 行定义.

构造及析构函数说明

◆ DiagramRow()

DiagramRow::DiagramRow ( TreeDiagram d,
uint  l 
)
inline

在文件 diagram.cpp82 行定义.

82 : m_diagram(d), m_level(l) {}

成员函数说明

◆ begin()

iterator DiagramRow::begin ( )
inline

在文件 diagram.cpp89 行定义.

89 { return m_items.begin(); }

引用了 m_items.

被这些函数引用 TreeDiagram::computeLayout().

◆ end()

iterator DiagramRow::end ( )
inline

在文件 diagram.cpp90 行定义.

90 { return m_items.end(); }

引用了 m_items.

被这些函数引用 TreeDiagram::computeLayout().

◆ insertClass()

void DiagramRow::insertClass ( DiagramItem parent,
const ClassDef cd,
bool  doBases,
Protection  prot,
Specifier  virt,
const QCString ts 
)

在文件 diagram.cpp335 行定义.

337 {
338  auto di = std::make_unique<DiagramItem>(parent, m_diagram->row(m_level)->numItems(),
339  cd,prot,virt,ts);
340  DiagramItem *di_ptr = di.get();
341  if (parent) parent->addChild(di_ptr);
342  di->move((int)(m_items.size()*gridWidth),(int)(m_level*gridHeight));
343  m_items.push_back(std::move(di));
344  int count=0;
345  for (const auto &bcd : doBases ? cd->baseClasses() : cd->subClasses())
346  {
347  /* there are base/sub classes */
348  ClassDef *ccd=bcd.classDef;
349  if (ccd && ccd->isVisibleInHierarchy()) count++;
350  }
351  if (count>0 && (prot!=Private || !doBases))
352  {
353  DiagramRow *row=0;
354  if (m_diagram->numRows()<=m_level+1) /* add new row */
355  {
356  row=m_diagram->addRow(m_level+1);
357  }
358  else /* get next row */
359  {
360  row=m_diagram->row(m_level+1);
361  }
362  for (const auto &bcd : doBases ? cd->baseClasses() : cd->subClasses())
363  {
364  ClassDef *ccd=bcd.classDef;
365  if (ccd && ccd->isVisibleInHierarchy())
366  {
367  row->insertClass(di_ptr,ccd,doBases,bcd.prot,
368  doBases?bcd.virt:Normal,
369  doBases?bcd.templSpecifiers:QCString());
370  }
371  }
372  }
373 }

引用了 DiagramItem::addChild(), TreeDiagram::addRow(), ClassDef::baseClasses(), gridHeight, gridWidth, insertClass(), ClassDef::isVisibleInHierarchy(), m_diagram, m_items, m_level, Normal, numItems(), TreeDiagram::numRows(), Private, TreeDiagram::row() , 以及 ClassDef::subClasses().

被这些函数引用 insertClass() , 以及 TreeDiagram::TreeDiagram().

◆ item()

DiagramItem* DiagramRow::item ( int  index)
inline

在文件 diagram.cpp87 行定义.

87 { return m_items.at(index).get(); }

引用了 m_items.

被这些函数引用 TreeDiagram::layoutTree().

◆ number()

uint DiagramRow::number ( )
inline

在文件 diagram.cpp85 行定义.

85 { return m_level; }

引用了 m_level.

◆ numItems()

uint DiagramRow::numItems ( ) const
inline

在文件 diagram.cpp88 行定义.

88 { return static_cast<uint>(m_items.size()); }

引用了 m_items.

被这些函数引用 insertClass().

◆ rbegin()

reverse_iterator DiagramRow::rbegin ( )
inline

在文件 diagram.cpp91 行定义.

91 { return m_items.rbegin(); }

引用了 m_items.

◆ rend()

reverse_iterator DiagramRow::rend ( )
inline

在文件 diagram.cpp92 行定义.

92 { return m_items.rend(); }

引用了 m_items.

类成员变量说明

◆ m_diagram

TreeDiagram* DiagramRow::m_diagram
private

在文件 diagram.cpp94 行定义.

被这些函数引用 insertClass().

◆ m_items

Vec DiagramRow::m_items
private

在文件 diagram.cpp96 行定义.

被这些函数引用 begin(), end(), insertClass(), item(), numItems(), rbegin() , 以及 rend().

◆ m_level

uint DiagramRow::m_level
private

在文件 diagram.cpp95 行定义.

被这些函数引用 insertClass() , 以及 number().


该类的文档由以下文件生成:
DiagramRow::m_level
uint m_level
Definition: diagram.cpp:95
TreeDiagram::addRow
DiagramRow * addRow(uint l)
Definition: diagram.cpp:123
Normal
@ Normal
Definition: types.h:29
Private
@ Private
Definition: types.h:26
DiagramRow
Class representing a row in the built-in class diagram
Definition: diagram.cpp:75
TreeDiagram::numRows
uint numRows() const
Definition: diagram.cpp:122
DiagramRow::numItems
uint numItems() const
Definition: diagram.cpp:88
DiagramItem::addChild
void addChild(DiagramItem *di)
Definition: diagram.cpp:328
DiagramRow::m_items
Vec m_items
Definition: diagram.cpp:96
ClassDef::isVisibleInHierarchy
virtual bool isVisibleInHierarchy() const =0
the class is visible in a class diagram, or class hierarchy
DiagramRow::m_diagram
TreeDiagram * m_diagram
Definition: diagram.cpp:94
uint
unsigned uint
Definition: qcstring.h:40
ClassDef
A abstract class representing of a compound symbol.
Definition: classdef.h:103
ClassDef::baseClasses
virtual const BaseClassList & baseClasses() const =0
Returns the list of base classes from which this class directly inherits.
gridHeight
const uint gridHeight
Definition: diagram.cpp:140
ClassDef::subClasses
virtual const BaseClassList & subClasses() const =0
Returns the list of sub classes that directly derive from this class
gridWidth
const uint gridWidth
Definition: diagram.cpp:139
DiagramRow::insertClass
void insertClass(DiagramItem *parent, const ClassDef *cd, bool doBases, Protection prot, Specifier virt, const QCString &ts)
Definition: diagram.cpp:335
TreeDiagram::row
DiagramRow * row(int index)
Definition: diagram.cpp:121
DiagramItem
Class representing a single node in the built-in class diagram
Definition: diagram.cpp:40
QCString
This is an alternative implementation of QCString.
Definition: qcstring.h:108